Validate globs.
Handle non-globs containing escaped characters.
Make unicode globs invalid.
Partial support for unicode filenames in globs.

Globs are still ascii only, but just add a few extra checks to make sure
they don't do anything surprising when matching a typical well formed UTF-8
filename. Not to bothered about badly formed UTF-8, or unusal filenames.
Throw exceptions for glob errors rather than returning false.
Warn when globbing against non-UTF-8 file.
Make include file order more consistent on different machines.

Sometimes when including files on the path the same glob will match the
same relative path from different include paths. In this case the paths
were ordered by their absolute paths. Instead use the order they occur
in the include path, which is a little more independent of the local
machine.