Let utf8::multibyte<T>::length return 1 for non-multibyte chars

Previously we asserted that the API was always called with multibyte start characters.
Add test for empty glob (should not match anything)
Use initializer list to create std::set (C++11)
Fix comparison of document path with candidate name

This check is so that we always include the current document, even if the exclude/binary globs are setup to exclude it.
Create custom parser for glob patterns

Previously we parsed them using regular expressions, but future improvements is hard using that approach.
Add tilde (~) as a glob “exclude” operator

For example the following glob will match C++/Objective-C++ source/header files, except those in the ‘vendor’ directory: *.{cc,mm,h}~vendor/**

It is possible to do multiple exclusions, e.g.: src/**~*.log~*.db

It is also possible to start with the exclude operator to negate the pattern (identical to the ! operator).

The exclude operator is not supported inside brace expansion, e.g.: {*.o,*~.nib} will treat it as a literal tilde. Furthermore, placing the tilde last will also treat it as a literal tilde, e.g.: *.txt~

In the exclude pattern, single/double asterisk (*/**) will match hidden files.
Handle bang in globs (negation) identically to tilde

This simplifies the code (slightly) and allows the bang to appear in other positions than leading.
Display progress during upload (ninja 1.5)
Switch from gdb → lldb and run in current terminal (ninja 1.5)