Fixed typo
Do not clear cache during normal lookup

We keep indirect references to cache lookups (for the duration of the function that use the cache) so we can only do cleanup at the start or end of the function which use the cache.
Include unhandled C++ exceptions in crash report
Allow “stop chars” when parsing a format string

This is useful when we have a format that embed format strings and we wish to use the format string parsers (to avoid an extra layer of escapes).
Use format string parser for symbol transformations

This avoids an extra layer of escapes.
Let decode::url_part convert plus to space
Decode plus characters in txmt URLs

This is done by using decode::url_part instead of stringByReplacingPercentEscapesUsingEncoding:
Use text::tokenize instead of text::split

This avoids duplicating the memory used.
Fix crash when giving nil string to FFDocumentSearch
Fix potential out of range access
Use ‘char const*’ with scope_t::push_scope

This is to allow distinguishing between static and dynamic strings.
Don’t call scope_t::push_scope with empty scope attributes

Previously would be called with an empty string.
Add range check to scope atom parser
Add scope_t::empty and scope_t::size
Treat empty string as empty scope

Previously would be a scope with one empty “atom”.
Simplify scope::shared_prefix and scope_t::has_prefix

This is mainly for upcoming implementation changes.
Call scope_t::empty instead of using an operator bool cast
Merge remote-tracking branch 'upstream/master'