Introduce io::spawn API

This is a wrapper for posix_spawn that sets up pipes for stdin, out, and error.
Use io::spawn for launching tar
Don’t change signal mask in library code

This belongs in main(), where it is already being set.

It might however be necessary to set it when running tests, although none of the tests seems to fail w/o this.
WIP: Filter through command
Implement filter through command

Closes #131
Disable custom icons for links to folders

For example a symbolic link like ~/.config (pointing to a folder) would previously get the custom icon for config files. Now it gets a folder icon (with a link badge).
Checkin release notes
Use the systemFontSize for labels, add function for small controls

Before labelFontSize was used for all controls, as the label size should match the control size we need to have different functions for each control size.
Use OakCreateSmallLabel for the status text

This treats the label as a small size control.
Re-align Find/Replace labels due the larger font size
Only “force” selection search when document window is key

Since the find dialog itself will call orderFrontFindPanel: when selecting the first item in the “in” pop-up (this is required to have it show ⌘F as key equivalent) we need to avoid changing search scope to “selection” for this case.
Using ‘$’ in scope selector will anchor to end of content scope

The content scope is the portion of the scope created while parsing the document content, unlike scope attributes, document, project, SCM, and dynamic scopes (appended to the content scope).
Show current selection string in Go to Line dialog
Only lock mutex for critical code
Add new bundle loading code

Some shortcomings:
1. Cache format is more wasteful (and kept in memory)
2. Device UUID and inode of root folder is not considered when replaying fs-events (we should do a recursive rescan if either changes).

On the bright side, the code better separates loading bundles from disk, and maintaining a disk cache updated via fs-events. This should make it easier to force cache invalidation when updating bundles from within TextMate (so we do not rely on fs-events) and to move bundle loading away from the main thread.

Additionally, by moving the bundle loading code to the bundle manager singleton, we’re introducing a single source of knowledge about “bundles on disk”, regardless of wether they are managed or not.
Switch to new bundle loading code
Minor style changes
Add API to control bundle auto-updating
Avoid function-local static storage for std::map

This gives the venerable warning about map::~map being a weak reference or something along those lines.
Add missing include