fixup! Extend gutter theming to selection foreground

Previous solution didn’t handle soft wrapped lines.

This solution also scales better, as we no longer need to break up ranges and create an entry per selected line.
Also save spelling language in settings

Missed this one in a previous commit.
Proper escaping in section headers (tmProperties)
Improve flexibility in settings API

If we only provide key and value, we set the setting globally.

If we provide an additional file type, we set it for that file type and parent file types (i.e. “text” is parent of “text.plain”) plus globally. An exception is when we give an “attr” scope as file type (then we do not cascade upward).

If we provide a path / glob, we set it for that path / glob and, as file type we can provide NULL_STR to limit it to just that path / glob, the empty string ("") to also set it globally, or a file type (which is treated as above).
Use escape sequence for line endings

This is to make the tmProperties file more transparent (should the user wish to manually inspect it).

As the variable part in the settings is treated as a format string, we can use ‘\r’ and ‘\n’ for CR and LF respectively.
Gracefully handle ‘svn info’ failure

This command would e.g. fail if the repository format is of a newer date (in which case the code expecting a result would do “out of bounds” access).

Rather than split on newline, split third element on colon, and then take second element of that result, we now parse the output into a map and look for the ‘URL’ key.
Move rightMouseDown: to subclass

The problem is that when we implement rightMouseDown: then we won’t receive menuForEvent:, but some OakControl subclasses (like OakTabBarView) may want to show a context menu.
fixup! File Browser will now remember it's width

Since the framework doesn’t depend on itself, it cannot include its exported headers.

This closes issue #282.
Add tagForLayerContainingPoint:

This is meant for subclasses which need to translate an NSPoint to a layer and cannot rely on the normal handling of this in the superclass.
Add menuForTabBarView: to delegate protocol
Add context menu to tab bar

This can be used to close current, other, and tabs on the right. Additionally to create a new tab (to the right of the tab showing the menu) or open the tab in a new window.

Closes issue #191.
Change default font size to 12
Colors are now transparent against background

Previously if the color for X (where X is e.g. foreground or invisibles) had an alpha value other than 1.0 (fully opaque) it would be blended against the less specifically scoped color for X rather than the background.

There was no real logic behind the previous design other than to treat all color blending the same and it would cause a problem for 1.x themes using transparency for selection or invisible characters.

Closes issue #285.
Code aesthetics
Fix typo
Move user defaults keys to Keys.{mm,h}
Add new settings to project page

This includes the previously hidden initial file browser location, whether or not to permanently show the tab bar, placement of file browser and command output.
Use gutter divider color for selection rectangle
Remove hardcoded paths from settings_t

Mainly this is because when we run tests, we do not want global or default settings from TextMate, so now TextMate.app explicitly sets the path to the default and global settings (unlike when running tests).
Add settings_t saving tests