fix some outdated documentation of Hub internals

Fixes #238
abandon the nasty JSON hack for Sinatra responses

I tried to hack Sinatra to automatically serialize non-string response
bodies as JSON, but this is not straightforward due to sinatra/sinatra#512
and doesn't really work in a whole lot of edge-cases.

Introduced a simple `json` helper and now using that instead of `body`.
read remotes URLs with `remote -v` instead of git-config

When reading config, "insteadOf" substitution rules aren't applied.
Using `git remote -v` is better because it reports the URLs that would
actually be used by git.

This reverts the feature that supports detecting the GitHub URL among
multiple others made for #59. If you have multiple URLs configured for
the same remote, put the GitHub one first and you'll be fine.

Fixes #241
disable `abort` and `exit` in the main test process

This ensures that a Hub command can't accidentally kill tests.
add encoding directive to API POST payloads

References #235
respect $GITHUB_USER & $GITHUB_PASSWORD

Fixes #245
ChildProcess.posix_spawn= isn't always available

References #257, references #247
fix `pull-request` with Unicode chars on Ruby 1.8

The problem was that the dumb JSON generator simply dumped strings with
Ruby's `inspect` method, which on 1.8 generates escape sequences that
are incompatible with JSON.

Now strings are dumped simply as they are, with only a handful
characters escaped (double quote, backslash, whitespace).

Fixes #235
update History
have `fork` set up a remote even if own fork already exists
simplify checking for existing fork

 - performs a single API call instead of 3
 - simpler handling of parent repo data
 - less brittle implementation

Closes #257, references #146
remove unnecessary endpoints in `fork` tests
`create` command uses API response to assign remote URL

This ensures we end up with the correct capitalization of user's login
name, and gives the opportunity to the server to change the project name
without having us choke on it.

Fixes #263
`create`: don't choke if current directory name contains spaces
don't reference SocketError before net/http is loaded

Tries to fix #261
get cukes passing on JRuby
fix hub on JRuby

Fixes #252
update History
fix `browse` on Windows
update History for previous commit