Make testing painless

### State of octokit's tests

Running the tests for octokit is easy and works great currently. Clone down the repo then run `script/test` and the specs run fine and successfully, as they should.

I think the specs reflect the manner in which octokit is developed. Piece by piece, small feature additions here and there. If you're adding new functionally that requires some repository write access you probably manually create the repo and run then run the tests so the cassettes get recorded and then you don't have to think about it anymore. And it is a complete pain for anyone else trying to fix existing code or add to existing client modules.

To get an idea of how much the tests are not isolated nor do the proper setup and teardown they should be doing you can clone octokit, set the ENV test variables, delete `spec/cassettes` and run the specs you will likely see results similar to this: `414 examples, 116 failures`.

Being able to rerun the tests from scratch isn't the goal here, but rather a byproduct of the primary goal - test isolation.

### Introducing isolated test repositories

New helper methods have been added in 466dd99d0f3385c5cf73e0e932f7e35c15ea5efe - `setup_test_repo(options={})` as well as a `teardown_test_repo(repo)`. The `options` hash for setup gets passed to the `Octokit.create_repo` method. The repository is created with a unique name in the format of `api-sandbox-1389737171.566369` and also we make sure it is replaced in the VCR cassettes with `<GITHUB_TEST_REPOSITORY>`. Using a unique name instead of only `api-sandbox` is better because:

1. We don't have to worry about naming or existence conflicts.
2. We don't care about the temporary repository name.
3. GitHub hates creating and deleting a repository with the same name in quick succession.

A large portion of the commits in this branch involve converting the specs from the hardcoded `api-playground/api-sandbox` repository name to a temporary test repository. Lettuce take a look at what that looks like with a glimpse at a before and after excerpt from the Commits Spec. Notice how no setup is done for `api-playground/api-sandbox`, it is assumed by the test to be already created.

```ruby
require 'helper'

describe Octokit::Client::Commits do
  before do
    Octokit.reset!
    @client = oauth_client
  end

  describe ".create_commit", :vcr do
    it "creates a commit" do
      last_commit = @client.commits('api-playground/api-sandbox').last
      commit = @client.create_commit("api-playground/api-sandbox", "My commit message", last_commit.commit.tree.sha, last_commit.sha)
      assert_requested :post, github_url("/repos/api-playground/api-sandbox/git/commits")
    end
  end # .create_commit
end
```

Now consider the spec after we isolate it:

```ruby
require 'helper'

describe Octokit::Client::Commits do
  before do
    Octokit.reset!
    @client = oauth_client
  end

  context "with test repository" do
    before do
      @test_repo = setup_test_repo(:auto_init => true).full_name
    end

    after do
      teardown_test_repo @test_repo
    end

    describe ".create_commit", :vcr do
      it "creates a commit" do
        last_commit = @client.commits(@test_repo).last
        commit = @client.create_commit(@test_repo, "My commit message", last_commit.commit.tree.sha, last_commit.sha)
        assert_requested :post, github_url("/repos/#{@test_repo}/git/commits")
      end
    end # .create_commit
  end # with test repository
end
```

These changes are what make up the isolate commits. In some cases there are additional changes which are noted in the commit message. With the help of VCR placeholders tests become isolated to a single test repository. New methods can be added to existing blocks without needing to change anything, just add the code and reference the `@test_repo`.

### Other additions

The ENV variable `OCTOKIT_TEST_GITHUB_ORGANIZATION` has been added to easily target an organization for testing, it can be referenced by the test helper `test_github_org`.

### Other notable pains and annoyances

Several small changes have been included, see the commit log for more details.

### Breaking down this pull request into bite size pieces

- [ ] [#397] 667c03d Change basic_auth_client test helper to create new client each time.
- [ ] [] 4a95f18 Save recorded cassettes in human readable format.
- [x] [#428] 55f8fd2 Add OCTOKIT_TEST_GITHUB_ORGANIZATION test ENV variable.
- [ ] [#429] 3fda405 Add test repository setup and teardown helpers.
- [x] [#429, #428] 9cd571a Add VCR cassette placeholders for test repositories and org team ids
- [ ] [#430] 3270a95 Add use_vcr_placeholder_for test helper method
- [ ] [] e47c9fc Isolate Releases specs
- [ ] [] c7c4a07 Isolate Commits specs
- [ ] [] 1e60293 Isolate Statuses specs
- [ ] [] 6dc35a7 Isolate Commit Comments specs
- [ ] [] e2c5282 Isolate Repositories specs
- [ ] [] a389b98 Isolate Refs specs
- [ ] [] 5614377 Isolate PubSubHubbub specs
- [ ] [] 1594229 Isolate Objects specs
- [ ] [] 2545fdb Isolate Objects specs
- [ ] [] f6fd8a5 Isolate Milestones specs
- [ ] [] 703ca9d Isolate Issues specs
- [ ] [] c240bcd Isolate Labels specs
- [ ] [] 0d71806 Isolate Notifications specs
- [ ] [] 9a7fbb0 Isolate Contents specs
- [ ] [] 4cfe164 Isolate PullRequests specs
- [ ] [] b5e917e Isolate Organizations specs
- [ ] [#425] f280b5e Change Notifications specs requiring thread context to stubs.
- [x] [#426] f9bc5da Test pagination against unchanging exact paginated resource.
- [x] [#427] 66e400f Gists Spec: Delete test gists in after block
- [ ] [] 2415b21 Authorizations Spec add cleanup, filter sensitive tokens created.
- [ ] [#430] b488065 Filter private tokens from Feeds specs on record.