Add syntax for commit message editing.

This is based on the git commit message syntax, and contains
all of the same features that make sense.
Exit gracefully when cancelling commit

TextMate treats any non-zero exit code as an error and will issue a warning dialog. If we decide to cancel the commit for some reason (e.g., due to conflicts), we should just let the user know and not TextMate via exit codes.