Add scm::info_t::pop_callback

Ideally we would be able to remove arbitrary callbacks rather than the last one added, but for this we would need to introduce some sort of handle (the callback itself is a block so not suitable as handle). The push/pop API for callbacks is sufficient for our use-case though.
Disallow copying test::jail_t

Since we delete the jailed directory in the destructor we can’t support a deep copy of this type. Since we don’t need it, and it’s just a type used in tests, I opted for simply disabling this (to get a compiler error, should it be attempted) rather than introduce the necessary code to allow shallow copies.
Use const for member data initialized by constructor
Disallow copying scm::info_t

Presently not supported.
Use weak pointers in most async dispatch blocks

This is mainly to expedite potential destruction of the objects referenced.
Changing default bundle item settings could fail

The cache would not include changes to settings keys from delta bundles.
Use proper PCH for tests

We previously passed an array to ‘pch_for’ where we should have passed a source path, though it appear to have worked.
Only set -fobjc-link-runtime for app targets

Ideally this should be set for executable targets that use Objective-C (and have deployment target set to 10.7).

This change is a quick fix for not having pure C++ tests leak. For more info see https://github.com/sorbits/rdar/blob/master/LeakWith10_7ObjCRunTime/README.md
Use libdispatch for monitoring file changes

This is instead of using kqueue, which has more overhead and require a dedicated thread for the kevent run-loop.
Checkin release notes
Add titles to all help pages

Note that the documentation is a bit outdated as it hasn’t been touched since the first public alpha — updated documentation will appear when closer to final release, in the meantime interested parties should watch the release notes, wiki, and mailing list.

Closes #822.
Always use system default ruby 1.8

Maybe fixes #845.
The 10th tab now get ⌘0 as key equivalent
Ensure we use /usr/bin/mktemp

It appears some variants of mktemp require the template parameter to contain a minimum number of X’es.
Log current key event in diagnostic reports

When a C++ exception is thrown from code invoked via a menu item then the menu item dispatcher will catch the exception and abort, this means the report doesn’t show the actual exception or contain any of the involved code.

By logging the key event in the report we should be able to deduce what action was invoked.

Adding info to diagnostic reports “documentation” from http://mjtsai.com/blog/2013/02/27/application-specific-crash-report-information/
Fix Go → Current Document with no project folder

We were creating an NSURL from the project folder which would throw an exception when the project folder was nil.
Copy incremental search string

Fixed #631 (again).
Improve heuristic for swipe gestures

We now try to find a scrollable view under the mouse, and if any scrolling was done, we reject the gesture as a “go back/forward” event.

Additionally we reject gestures with a duration of more than 0.2 seconds.

Maybe fixes #854.
Add “scroll past end” option to the View menu

When enabled the height of the document is increased by the height of the view port, which means the last lines of the document are not anchored to the bottom of the view port but can e.g. be centered.

Closes #513.
Add AXDescription to image buttons