add Gemfile.lock to version control

So that everyone doing development is using the same versions of
dependencies. Fixes #323
port `checkout` tests to cukes
save and reuse pull request message if creating it failed
improve preserving message from failed pull request

 - If text editor aborts, message is discarded.
 - If the API request to create the PR fails, message is kept.
 - If the API request succeeds, message is discarded.
 - When kept message is reused for subsequent PR, only its title and
   body get inserted. The PR instructions and changelog still get
   regenerated.

Fixes #178
avoid hard breaks in pull requests authored in vim

Hard-wrapping at 80 chars looks great for Markdown and commits, but
since pull request bodies are rendered with GitHub-flavored Markdown, we
want to avoid line breaks because they get preserved and look like crap
on the web.

Fixes #318
fix `ci-status` showing the latest status

GitHub API seems to return statuses in reverse-chronological order. The
first one is the latest one.

Fixes #327
enable passing in `pull-request` title & body

Emulates the interface of `git commit`:

  $ hub pull-request -m "This is my title"
  $ hub pull-request -F /path/to/message.txt
  $ hub pull-request -F -

The old way of passing in just title is deprecated

  $ hub pull-request "Deprecated title"

Fixes #183
simplify assertion of supplied API params
Merge `pull-request` changes
fix unit tests after `pull-request` changes; update History
port more pull-request tests to cukes
remove obsolete ci-status unit tests

The cukes cover the same funtionality
escape branch name as uri component in hub browse

if your branch name contains some characters that are significant to
uri's, then `hub browse` sends you to a 404 page. this change uses
`CGI.escape` to properly encode that when constructing the URL.

an example of where this is a problem is if you use topic branches named
by issues stored in an issue tracker, i.e. `fix-something-#123`
indicating what you're working on and the corresponding issue number.
fix unescaping multiple slashes in branch name in URLs
work around bug in git 1.8.2.1 in tests

Making empty commits in tests blocked by opening the default text
editor, waiting for a message which we specified to be empty.

http://thread.gmane.org/gmane.comp.version-control.git/225529
sabotage any git operation in tests that opens the text editor

This is a guard against enountering any potentially blocking commands
mark internal method as private
fix erroneous CGI import
document -u option to browse/compare
don't mangle git "core.pager" value

fixes #339