Auto-layout: Encapsulate tab bar expansion

With auto-layout the tab bar view can simply invalidate its intrinsic size when it should expand/collapse. This is also done if the global user setting for disabling tab bar collapsing is changed.
Remove resize buttons

Going forward we only allow resizing views by grabbing the dividers.
Remove unnecessary include
Constrain size of splits in main window

The main window has now moved fully to constraint based layout which makes it a lot easier to tweak the layout and fixes issue #145.

Presently the option to have HTML output on the right is not supported. It will likely be back with a few other options that have been requested.

The width of file browser and height of HTML output view is always read from defaults rather than restored from previous session. Effectively this results in the same behavior except when there are multiple windows with different sizing of these splits. Unsure if per-window sizes should be brought back.
Remove legacy code
Remove Chinese translation

It’s not feasible to maintain the old-style xib translations while we work on the UI. We’ll soon move fully to constraint-based layout which should allow translations to be purely string-based.
Fix format string in xib

Was using the (undefined) ‘Extension’ variable instead of ‘X’.
Add glob test: ‘*.ext’ doesn’t match ‘.ext’

I wasn’t sure if this was really desired, but it mimics bash.
Don’t present dot files as having an extension

This is just for the dialog text when user is asked to select a file type.
Scoped properties are now applied last

This is so that a global setting for ‘source.ruby’ takes precedence over a local ‘source’ setting.

A minor downside is that a local properties file cannot use scoped settings outside a scope selector section.
fixup! Constrain size of splits in main window

Forgot to enable ‘autorecalculatesKeyViewLoop’.
Remove legacy code (10.4 compatibility)

The code itself was using Gestalt() to check OS version which is deprecated on 10.8.
Extend std::string’s lifetime for safe use of c_str

20% of reported crashes are in launch_tbz which indirectly call oak::c_array. My hunch is that the c_str buffer is overwritten because the std::string which returned it has been disposed, this makes strdup() do a bad allocation / memory read.

This would likely be a race condition (wrt. the c_str buffer) and coincidentally the oak::c_array is called in a thread (when it crashes).
Fix setting file type for dot files

When we store a file type for a dot file we should not prefix the “extension” with an asterisk.
Add safety checks

Since 10% of reported crashes are in synchronizeWindowTitle and seems to be about not having a proper document pointer, I am adding these checks and some debug output — don’t understand how we would get into this situation though.
Update README

Link to prebuilt binaries, mention 10.6 fork, libc++ requirement, boostdir variable, and the potential need for using xcode-select.
Simplify code

If the window hadn’t been loaded yet, we previously had to delay opening the document when changing tab (in code).

Since we now create the window in the initializer, there is no longer need for this.
Improve “is scope selector” heuristic

A root scope can also be followed by a comma, e.g. “text, source”.
Checkin release notes
fixup! Let cf::to_s(NULL) return NULL_STR

Incase of an empty string CFStringGetBytes() returns 0 which we treated as an error. This caused empty strings to be turned into the NULL_STR placeholder.