Add helper functions to get OS version

We need this in a few places and while calling Gestalt() isn’t that much code, that function is deprecated in 10.8 and the alternative is a lot more code, so we don’t want to repeat that once we update the code.
Don’t use POSIX_SPAWN_CLOEXEC_DEFAULT on 10.7

Using this flag on 10.7.5 seems to cause a kernel panic.

Fixes #896.
Don’t use posix_spawnattr_setpgroup

This appears to fail in rare circumstances and there is no reason why the io::exec code sets up a process group, so easier to just remove this.
Let user know if saving in bundle editor fails
Add success/failure to plist::parse_ascii API
Show error when property list fails to parse
Move bundle loading to own file
No longer support deleted items in bundle’s info.plist

Recording that an item is deleted in the bundle’s info.plist is necessary for TextMate 1.x because it merges all installed bundles, so if the user has a local version, he will still see items from the default version, unless these are indicated to be deleted in the local version.

With 2.0 only delta bundles get merged with a less-local bundle, and when deleting a default item, a delta item is written with the ‘isDeleted’ key set to true.
Avoid member data access when constructing bundles::item_t
Bundle loading no longer done by static member function
Don’t (re)scan when creating fs::node_t

Also make it optional to provide a map pointer (for collecting changes) when rescanning.
Only use cache file if at version 1

Since it’s not unlikely that a user will downgrade from a nightly build, we should be prepared to see cache files using a newer (incompatible) file format.
Checkin release notes
Use ‘alpha’ prefix instead of ‘r’
Delete cached bundle items when changed on disk

Effectively it doesn’t change much as cached items are fetched with a file date, but in theory it should now be possible to omit that date (if we can trust that fs-events has always notified us about disk changes).
Use array for cached settings names

We previously used a dictionary so that initializing a bundle item object wouldn’t need to know the difference between a full property list and a cached subset. Technically though the previous code had an implicit assertion on the bundle item not being able to rely on the settings values being useful, which is now gone.

The main advantage though is a smaller and more correct cache format.
Use constant for version of property cache format
fixup! No longer support deleted items in bundle’s info.plist

We still need to cache the ‘deleted’ key since delta items use this to indicate keys deleted in the local version.
Checkin release notes
Find dsym archive using new naming convention

We gracefully fallback on the old naming convention.