Add svn status xslt to scm target

This is presently not used, it’s skeleton code for @whitlockjc.
Replaced contents of skeleton svn_status.xsl with real content.

* Note: Column delimiter is back to four spaces due to XML/XSL not allowing control characters
Use xsltproc to parse svn (XML) status output

For a repository with 7,767 files it takes 3.5 seconds for Python to convert a full file listing from XML to the simpler line-based format. Using xsltproc the same takes 0.74 seconds.

According to issue #340 TextMate “freeze for up to about 5 - 10 minutes” when doing svn status. Not sure how much this change helps on that, no doubt it’s an improvement.
Remove code duplication

The SCM status enumeration is now only declared once.

I also introduced an ‘unknown’ status which should be used instead of ‘none’.
Change scm::status::note → unknown where applicable
Change scm::status::versioned → none

The scm::status::versioned status has now been removed.

The upshot of this is that SCM drivers can leave out files that are “clean” from their status map, and TextMate will assume they have status “none” (clean). This cuts down on the amount of data that needs to be sent (and/or processed) by the SCM drivers.
Exclude clean files from svn status

Subversion itself is roughly 30% faster if we do not ask for status of all files, the XML processing though is magnitudes faster, since it will only have to deal with a few records (in the general case) rather than a record per file (xsltproc seems to do around ~10,000 files per second on my Mac Pro, though I have no idea if it scales linearly).
Allow disabling SCM status from .tm_properties

This is done by adding the following (which can be limited to a folder):

    scmStatus = false
Checkin release notes
SCM driver reports if system tracks directories

This can be used to make decisions about whether or not we should assign a virtual status to directories, prune them from a status display, or similar.
Don’t prune items from SCM drivers tracking directories
Fix excessive SCM status updates for clean repositories

The problem is that we used to treat an empty status map as meaning we hadn’t yet requested status for this repository, however, now that we no longer need status for all files, we would have an empty status map for clean (svn) repositories, leading to needlessly requesting status updates all the time (and on main thread).
fixup! If path no longer have SCM info, include it in change set

The iterator checks were wrong.
Fix a leak in OakHistoryController
Fix warning for literal strings used with NSAlert

__attribute__((format(...))) was added to NSAlert's class-based initializer in 10.7, and due to using string objects instead of literals as informative text, Clang is unable to guarantee the safety of the formatter, and, as such, issues a warning.
Allow folders and bundles to be opened with TextMate

This is mainly for TextMate’s own Open With menu, as it doesn’t seem to affect Finder’s (and TextMate already did support folders being dragged onto its application icon).
Add support for reading xcodeproj files
Show Package Contents work for packages with own data source

For example Xcode projects now have their target (URL) set to xcodeproject://path/to/project/file which would cause Show Package Contents to not work, as it expected a file URL.
Fix parent for smart folders
Drag-selecting beyond visible document lacked refresh

This closes issue #297.