Resize window when toggling file browser

If you dislike this it can be disabled using:

    defaults write com.macromates.TextMate.preview disableFileBrowserWindowResize -bool YES
Exclude file browser width from new windows’ width

Closes #679.
Move CGColorRef helper functions

These only have one user, so let’s make them private helper functions instead.
Remove cf::color_t

This wrapper is no longer used.
Don’t use NSFileManager to trash symlinks

NSFileManager will resolve the link and move the original file to trash, which is generally not desired (or expected).
Convert leading em-spaces in symbol menu to item indent

By using the menu item’s indentation level property it is possible to “type to select” items, which previously would not work for items that had leading em-space as a prefix.

Closes #806.
Add test system supporting grand central dispatch

The motivation for introducing a new test generator is that CxxTest cannot be used with tests that (indirectly) schedule code to run in the main queue.

There are a few other advantages of breaking with CxxTest:

 1. Less boilerplate: A test file need only contain a
    function named with a ‘test_’ prefix. No classes,
    inheritance, or similar. If you need fixtures, use the
    multitude of ways that C/C++ allows that (constructor
    functions or non-POD types with static storage).

 2. Concurrent tests: Test functions are scheduled with
    ‘dispatch_apply’ and will thus run concurrently. If
    you need serial execution you can wrap your tests in a
    block and schedule that to run in the main queue.
    Though you should catch exceptions and re-throw these
    in the test’s original queue, as the test assertions
    are using exceptions.

 3. Easier output of custom types: The assertion macros
    will call ‘to_s’ on the arguments given, so the only
    thing required to make these output nicely is to
    provide a ‘to_s’ overload for your custom type /
    enumeration. I know that the standard way to do this
    is overloading operator<< for a stream, but the
    TextMate code-base already uses the ‘to_s’
    convention.

Long-term I can see a few other advantages, like calling preprocessor on the input files to support #if/#else/#endif to disable tests, better support for Cocoa code (NSRunLoop), and introducing test timeouts.
SCM background workers enabled by default

Normally we enable these on application launch when we receive an ‘application did become active’ notification, for tests though, this notification is lacking, but we do want it enabled for tests, and while we could do a constructor in the tests to enable it, it seems better to just enable it by default.

One issue is that if TextMate is launched “in the background” then it will still do SCM status gathering. Though long-term I may actually want to always have it enabled, even when TextMate is not active.
Add API to wait for SCM status

This is only meant for tests where we wish to block execution until SCM status has been collected.
Let to_s(fs::snapshot_t) return std::string

Previously it would dump the datatype to stderr.
Update SCM tests to new API

This is both the new test system and the new (non-blocking) SCM API.
Include scm.h instead of scm_ng.h

Since scm.h includes scm_ng.h this is effectively the same.
Remove old SCM API
Drop ‘ng’ namespace for scm
Disable swipes if not at min/max X
Add performCloseAllTabs: action method

Closes #808.
Remove ‘InSelectedFolder’ suffix from action method

This makes it more suitable as action for a menu item in the File menu.
Add newFolder: forwarding to document controller
Show key equivalents in file browser action menu

Also change New Document → New File. Such title makes more sense when shown in the main menu.
Rework items and key equivalents in File menu

Adding New File / Folder and Close All Tabs to the menu.