Add glob support.

This is based on Rene's implementation, but I used my own glob function,
and adjusted a few things since it's now always using ascii. It would be
nice to support unicode, but that would require at the very least a
normalization library, and perhaps more than that.

[SVN r86699]
Only match files when the whole glob matches.

[SVN r86700]
Only run glob in existing directories.

Maybe it should be an error if there are no matches.

[SVN r86701]
Fix the platform independent paths for globs.

[SVN r86702]
Glob dependency tracking.

[SVN r86703]
Error for invalid paths containing escaped slashes.

Note that the test cases are really awkward so this is unlikely to
actually happen normally, but implementation is much easier if it
doesn't have to worry about these cases.

[SVN r86704]
Validate globs.

[SVN r86705]
Handle non-globs containing escaped characters.

[SVN r86706]
Make unicode globs invalid.

[SVN r86707]
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.

[SVN r86708]