[Support/Path] Add path::is_gnu_absolute
Implements GNU tools IS_ABSOLUTE_PATH.
LLVM's path::is_absolute behavior is not the same as GNU tools
GNU absolute defines the following rules:
1. Paths starting with a path separator are absolute.
2. Windows style paths are also absolute if they start with a character
followed by ':'.
3. No other paths are absolute.
LLVM absolute defines the following rules:
1. Only paths with a root name and a root directory are absolute.
2. No other paths are absolute.
All paths on POSIX style are considered to have a root name. On Windows
style the path "C:\Users\Default" has "C:" as a root name and "\" as a root
Hence "c:" on Windows which is considered absolute on GNU is not absolute
on LLVM because it has no root directory. Likewise "/" and "\" on Windows
are absolute on GNU and are not on LLVM due to missing root name.
Related to PR46368.