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