Merge pull request #3 from emaskovsky/master

Improve support of directory names with spaces and POSIX compatibility
Support source code filenames with spaces

If the names of source code files checked by pre-commit-uncrustify
contain spaces or other special characters, the patch file must be
adapted accordingly.

If the diff patch file contains headers like:

--- a/path with spaces/file with spaces.cpp    [date]
+++ b/path with spaces/file with spaces.cpp    [date]

the "git apply" command will not be able to apply the patch, as it will
be confused by the spaces.

Fortunately it is possible to produce applicable patches in such cases,
by quoting the file names accordingly:

--- "a/path with spaces/file with spaces.cpp"  [date]
+++ "b/path with spaces/file with spaces.cpp"  [date]

It is important to not only quote the file names, but the leading "a/"
and "b/" prefixes must be qouted along with the filenames, like in the
example above.
Allow special characters in the checked file names

Unix systems allow to use file names containing nearly any special
characters, like even ", \, $, <, >, |, *, ?, :, etc.
Those normally have special meaning, but it is still possible to create
file names containing those, if properly escaped by the backslash
character.

This patch adds support for those special characters in the file names
checked by the Uncrustify script.

However, usage of such special characters inside of the file names is
neither common nor encouraged - quite the opposite, it is strongly
discouraged, as it is not very easy to maintain such files, and many
tools are not able to handle them properly.

Particular notes:
- allowed to use quotes inside the source file names
  (those are escaped in the generated diffs)
- allowed to use the backslash character in the file name:
	The Unix file names can contain a backslash character, if it is
	escaped by another backslash character. In Unix/Linux this is
	allowed, as only the slash character is used as a path
	separator.
	Note that in the git script it is not a problem to escape the
	backslash even if used under Windows (where the backslash serves
	as a path separator), because inside the git environment, the
	backslashes in the path are replaced by slashes.
- asterisk and question mark:
	Those are normally used as wildcards in the command line,
	however the Unix file names can still contain them if escaped.

Tested with the following source file name:
-a"b\c)d'e?f*g\)h(i[j]k+l=m&n|o^p%q$r#s@t!u`v~x;y,z<1>2:3.cpp