New (native) commit window

This is based on the previous commit window code base. It replaces the NSTextView with a OakTextView for entering the commit messages. This allows us to take advantage of some of the git grammar features, e.g., fixup!.

If other SCM bundles are updated in the future to include any specific grammars, these can be used in the commit window by setting the bundle grammar to "text.SCM-commit", where SCM could be hg or svn for example.

Changes to note:

	*  The Modify row button for the "--action-cmd" commands are now implemented in the action menu and the table context menu.

	*  The shortcut for committing is now ⌘S.

	*  The shortcut for cancelling a commit is now ⌘W.
Enable new commit window
Get the key window when performing bundle item actions

OakCommitWindow is an NSPanel and therefore cannot become the main window, so bundle actions could not be performed via the bundle menu. Also, we avoid casting it explicitly as a instance of DocumentController for clarity.

This change should be safe since other NSPanels (e.g., Find) do not respond to performBundleItem and it was being handle as a generic id anyways. E.g, bundle actions performed via the menu behave as expected for the BundleEditor, which responds to performBundleItem when the OakTextView is in focus for that window.
Teach OakCommitWindow performBundleItem

This is necessary for instances where OakTextView may not be in focus.
Change OakCommitWindow from NSPanel → NSWindow

This allows other panels (e.g. find dialog and clipboard history) to interact with the OakTextView in the commit window.