Support relative includes in tests

Since we inline the test file, rather than include it, relative includes from this inlined code would not work.
Make semi-internal API private

This was previously public so that we could write tests for it, but since the test runner is linked with the object files, it can access symbols that has visibility set to hidden.
Remove unused private field

Basically to avoid a clang warning.
Don’t call super in main menu key equivalent handler

It was calling super to keep our custom code to a minimum, but it turns out that the superclass will sometimes invoke bundle menu items even when items from the other menus are better candidates.

Partially reverts 4b0a9a08c7cea550cf83e48d2471770e6b1fefb2.
Expose scm::find_executable (for testing)

This is so that tests can use the exact same executable to create the repository, as is used to obtain status (svn repositories created with newer executables are often not backwards compatible).
Let SCM tests use same executable as driver

The was previously only done for the svn tests and the code had some flaws, like modifying the PATH environment variable.
Update settings tests to new system
Use path::is_absolute instead of custom code
Use path::is_child instead of custom code
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.