Interim commit.
Merge branch 'master' into user-endpoints
Implemented the GitHub.AddEmails() function.
Added some more private "tooling" functions so that we could easily make
POST requests.
Added the User.GetFollowers() method.

There is also a large section of commented-out code that is the
beginnings of some work for getting multiple pages' worth of responses.
Some minor syntax clean-ups and fixes to gothub.go.

Also added a Github.delete() function for making HTTP DELETE calls to
the GitHub API.
Added some code in for parsing HTTP Link headers.

Complete with tests!
Implemented the User.GetFollowing() function.

This function calls the /users/:user/following endpoint to get a list of
the users the User u is following.
Implemented the GitHub.IsFollowing() function.
Fixed the request-construction logic for HTTP PUT and DELETE requests,
and renamed the methods to be "http<Method>".

Apparently, you cannot pass "nil" around in place of a pointer to an
object, so I had to clean up the logic and explicitly check to see if
`nil` got passed in as the `content *bytes.Buffer` argument.
Implemented the GitHub.Follow() and GitHub.Unfollow() methods, complete
with tests.
`go fmt`
Implemented User.GetPublicKeys().
Added methods GitHub.PublicKeys() and GitHub.GetPublicKey().
Added the GitHub.httpPath() function for making HTTP PATCH API calls,
and added special handling for an HTTP 422 response status code.
Ran gothub.go through `go fmt`.
Implemented the GitHub.AddPublicKey(), UpdatePublicKey() and
RemovePublicKey() methods.

NOTE: The test for UpdatePublicKey() fails. The error codes for the
PATCH /user/keys/:id endpoint are undocumented. The "code" value
returned by the API is "custom", which is not documented anywhere.

I will probably have to submit an issue to GitHub for this.
Merge branch 'user-endpoints'