Fix typo in Parsers#parse_status_hash

Make spec "should parse a status document correctly" (`lib/commands/status_spec.rb`) pass again.
Add Gemfile to document RSpec version requirement.

Specs need to be run with RSpec 1.
Fix specs.

Git commands like `status` and `log` are now called with additional parameters, so I updated `Git.command_response` mocks accordingly.

Also there were some problems with redefined constants and nil strings that seem to be related to Ruby versions > 1.8 (fixes should be backward compatible, though).

I commented out "should auto-expand the path when filtering to a relative path" (in `lib/commands/status_spec.rb`), as this feature was (accidentally?) removed in 8ecadc8fb26.
Make parameter to Git#git_dir optional.

`paths.first` seems to be a reasonable default value.
Fix Branch#current_name for submodules.

The fix is simple: Just use `Git#git_dir` instead of assuming that the git dir is `#{base_path}/.git` (which is not the case when working with submodules).
Trivial: remove extraneous whitespaces
Only show output window after closing commit window

When the commit window was a separate program and required siginificant time to launch, it made since to initially send some kind of information to the users via the output window. However, now that the commit window runs as part of the Textmate, it may be a better user experience to delay output until after the commit window is closed.
Running diff from commit window will now show changes since HEAD

By default, running “git diff” shows local changes that have not yet been staged, so if the user had already added (a version of) the file to the staging area, the diff button would only show changes done since that, which is misleading (as we commit to HEAD not the staging area).

A minor issue exists for newly initialized repositories without a HEAD to diff against, here the diff command actually fails, but we ignore the return code and show a blank diff.
Revert "Fix for the diff action in the commit window"

This reverts commit 12c87d5058796b895a96fc7c99ed9378bec5d727.
Allow comments above subject line
Remove in favor of commit history

#ignore
Update README

#ignore
Add API to suppress/unsuppress (html) output

This is useful when we would like to discard and not show any potential (html) output that may have been generated up to that point (e.g., canceling an action).

Note that all output will be suppressed until "unsupress_output" is called. I.e., calling "flush" will not show the current output buffer.
Suppress output (html) when a user cancels a commit action
When amending auto populate the commit window with last commit message

Since we auto populate the textview with the last commit message, we eliminate the need to include the "-- update commit message --" item. This item was used to inform the bundle if the user intended to update the commit message (check) or just use the previous message (uncheck).

So now when amending a commit, the commit window will show the last commit message in the textview and a list of potential files only if necessary (i.e., the table view will be empty in situations where the user wanted just to edit the commit message). This behavior is more consistent with the way amending a commit works when running "git commit --amend" from the command line.

Also, we now check to see if there is nothing to amend (i.e., it is the initial commit).
Refactor and update specs for PartialCommitWorker

I wanted to include some additional specs with the new logic around amending, but ended up refactoring and adding more specs overall.
Include file name in commit window actions (revert and delete)

Requires v2.0-alpha.9533
Point to ruby 1.8 shim

Using a shim allows us to catch when 1.8 of ruby is not present and provide other options.

#ignore
Follow moved files in Annotate/Blame history
Remove contributor list in favor of git history