Checks whether an absolute file name is given in TheFileName +
+Makes use of FilenameIsWinAbsolute on Windows systems, otherwise uses FilenameIsUnixAbsolute +
++ FilenameIsWinAbsolute - checks that the supplied name is an absolute file name for the Windows system
+Looks, for instance, for Drive Letters and colon at the beginning of the string
++ FilenameIsUnixAbsolute - checks that the supplied name is an absolute filename in Unix systems
+Checks that the name is non-empty and starts with a slash
++ FileIsReadable - checks whether supplied file name refers to a readable file
+Always true on Windows systems.
+On Unix systems, checks permissions of file
++ FileIsWritable - checks if the supplied file name refers to a file that is writable
+Checks file permissions in both Unix and Windows systems
++ FileIsText - checks whether the supplied file name refers to a readale text file
+Searches the opening section of the file for non-text characters such as ASCII 0 to 31 (except CR and LF, the new line characters)
++ FileIsSymLink - check if file name is a symbolic link
+On Windows systems, always returns false. On others, returns true if it is a symbolic link
++ FilenameIsPascalUnit - checks that the supplied name is a correct Pascal unit name
+Looks at the file extension to see if it matches one of the standard Pascal extensions (currently .p, .pp, .pas)
+CreateAbsoluteSearchPath - concatenates + BaseDirectory and + SearchPath to form an absolute path to search for files
Adds appropriate path delimiters to the BaseDirectory string, then adds the search path, checking that each directory in the path is in fact an absolutely specified directory, then returns the fully formed absolute search path.
CreateRelativePath - given an absolute path and a + BaseDirectory, create a search path relative to the current directory
The returned string includes the correct number of dots and double dots to signify relativity to the current directory (eg ../../or ..\..\ etc)