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)
Always enable action pop-up button in find window

Previously it was only available when doing folder searches, since the items are for folder search behavior and results.

However, with “Find All” in document, we get a similar result list from which we may want to copy matches.
Match (potential) file chooser glob against full file path

Previously we would try full path, relative path, and just the name. This was done to determine wether or not the display string should include full path details or be limited to the name. The problem is that an excluding glob may require the full path, and would thus not exclude items that did match when using just the item’s name.
Improve handling of empty braces in globs

We treat empty braces as literal characters though do balance them.