Limit code duplication
When rescanning a non-existing bundle item path, rescan parent

For example when creating a new bundle (‘foo.tmBundle’) and then saving a new snippet in this bundle (‘bar.tmSnippet’) we may ask to rescan the ‘Snippets’ folder (in the bundle) before the bundle itself does a content (re)scan, which effectively makes the ‘Snippets’ rescan a no-op.

Should fix #1034
Don’t pass NULL_STR to path::entries
DFA nodes themselves should not dispose children

A DFA node may be disposed as part of DFA construction (because the node is redundant) and here it would have “next” pointers setup, which it should not follow in its destructor, since those nodes could still be used.

Fixes #1086
Don’t define global macros that are only used in QuickLook target
Make dictionary map function optional for cache_t::load
Improve speed of loading (parsing) bundle index
Add option to load TextMate’s bundle index (gtm)
Minor speed improvement in creating bundle index
Add some const keywords
Use dispatch_time_t instead of std::chrono::time_point

Building with clang 3.2 (binary distribution) results in “illegal instruction” when adding 3 seconds to the steady clock, so I just replaced the code.

The reason the code was using std::chrono was to be able to provide better debug output, as dispatch_time_t is an abstracted time representation (according to the documentation).
Support setup functions for tests

Previously this had to be done via global constructor functions but it would seem the execution of these may happen before initialization of global data.
Do not use global constructors for fixtures
Add date parsing to plist::parse_ascii
Add assertion for grammar construction
Add member data accessor for cache_t’s content filter function
Introduce single function for mapping extension to language
Add support for capnp files (build system)
Add support for serialization of cache_t with cap’n proto

See http://kentonv.github.io/capnproto/install.html for how to install.
Use cap’n proto for bundle index

This makes loading time roughly twice as fast, although some of the speed gain is because we no longer need to convert CFPropertyListRef → plist::any_t.