Handle assigning empty scope to non-empty scope
When constructing scope, split string on space instead of parsing
Remove unused scope parsing API
Remove scope::types::atom_t

This is first step toward decreasing memory usage by scope_t.
Use name convention to identify non-content scopes
Update scope selector matching code

This is in anticipation of changing scope_t data layout.
Add more scope selector tests
Use linked list for scope_t data
Improve encapsulation
Remove unused comparison operators
Remove unused to_s functions
Introduce C string API

This may seem like a step back, but is the easiest way to deal with “static strings” (that should not be copied).
Convert scope match API to accept C strings
Remove custom debug/trace log system
Remove redundant assert
More encapsulation
Show a chevron menu button when tab bar overflows

The behavior is based on Safari where last visible tab is swapped with the selected tab, if selected tab itself would not be visible.

Commit edited by Allan Odgaard, original version used document icons in overflow menu and would make the effective last tab sticky.

Closes #1060
Use UTIs for both application and Quicklook generator

UTIs are taken from both the Apple supplied list and newly created for those that didn't exist. For those languages where no clear 'owner' existed to provide the reverse-DNS notation we use a com.macromates.* stand-in.
Avoid using NULL_STR with scope_t::push_scope
Use std::make_shared