Change basic_auth_client test helper to create new client each time.

Conflicts:
	spec/helper.rb
Save recorded cassettes in human readable format.

The api returns utf-8 encoded content but the actual encoding is not
set from headers so vcr thinks there is none and force encodes the
response body to ASCII-8BIT binary. Instead of messing with our
network stack and middleware to give a correct indication of the
body encoding this change forces it before the cassette is saved.

I rerecorded a cassette included in this commit showing the successful
recording of a request with utf-8 characters one of the GitHub user's
full name field.
Add OCTOKIT_TEST_GITHUB_ORGANIZATION test ENV variable.

Usable in tests by calling test_github_org helper method.
Add test repository setup and teardown helpers.

Added test_repo test helper method to generate a unique-enough
repository name and filter it from VCR cassettes as
<GITHUB_TEST_REPOSITORY>.

Added setup_test_repo test helper method to create a new repository on
GitHub to test against. Method returns the newly created repository.

Added teardown_test_repo test helper method to delete a test repository
from GitHub. Method takes a full repository name.
Add VCR cassette placeholders for test repositories and org team ids
Add use_vcr_placeholder_for test helper method

Makes it easier to setup cassette placeholders by calling
use_vcr_placeholder_for(text, replacement) instead of doing all the VCR
configure blocks.
Isolate Releases specs

Added "with repository" context with test repository setup and teardown.
Moved all specs referencing api-playground/api-sandbox into the context
and updated references of the repository name to test repository name
created in the context setup.

Added "with release" context that creates a release in the test
repository for the tests that need an exisiting release. Moved the specs
requiring a release inside the context and updated the references to the
release created in the test setup method.

Added "with release asset" context with setup that adds a release asset
for the tests that need it. Moved the relevant specs inside the context
and updated their references to the asset created in the context setup.

Spec results

Before changes 13 examples, 0 failures
After changes  13 examples, 0 failures
Isolate Commits specs

Added "with test repository" context with setup and teardown of test
repository. Moved specs referencing api-playground/api-sandbox inside
the context and updated the reference to be the test repository created
in the context setup.

Spec results

Before changes 24 examples, 0 failures
After changes  24 examples, 0 failures
Isolate Statuses specs

Added "with repository" context with test repository setup and teardown.
Moved .create_status spec into the context and changed
api-playground/api-sandbox references to the test repository setup in
the context.

Spec results

Before changes 2 examples, 0 failures
After changes  2 examples, 0 failures
Isolate Commit Comments specs

Added "with repository" context with test repository setup and teardown.
Additionally, a commit comment is created in the context setup to be used
by relevant specs. Specs referencing api-playground/api-sandbox moved
into the context and their refences updated to the repository setup in
the context.

Spec results

Before changes 6 examples, 0 failures
After changes  6 examples, 0 failures
Isolate Repositories specs

Changed .create_repository for organization repositories spec to use a
test_repo name, changed the spec to create the repository in the before
block and teardown in after block.

Renamed "methods that require a new @repo" context to "with repository".

Changed "with repository" setup to use setup_test_repo instead of
"an-repo".

Changed github_url call to basic_github_url in "creates a repository"
spec because a basic auth client is used by setup_test_repo in the
context.

Changed specs that add and remove a collaborator to and from a
repository for testing from "pengwynn" to "api-padawan".

Renamed "methods that need an existing hook" context to "with hook".

Changed .delete_repository spec to use basic_auth_client since the
oauth_client doesn't have the proper scopes to delete repositories by
default.

Changed .fork spec to use basic_auth_client when cleaning up the forked
repository since oauth_client doesn't have delete scope by default.

Expanded ".subscription" spec to test "with a subscription" and "without
a subscription". Previously only "with a subscription" was being tested.

Spec results

Before changes 48 examples, 0 failures
After changes  49 examples, 0 failures

.subscription spec was expanded to cover another case resulting in an
example increase.
Isolate Refs specs

Removed "methods that require a ref" context that wrapped all the specs.
Broke down specs into "with repository" and "with ref" contexts where
appropriate.

Added "with repository" context with test repository setup and teardown.
Moved specs referencing api-playground/api-sandbox into the context and
updated the references to use the test repository created in the
context.

Added "with ref" context with setup to create a reference for the
relevant specs to test against. Moved relevant specs into the context
and updated them to use the ref created in the context setup.

Spec results

Before changes 8 examples, 0 failures
After changes  8 examples, 0 failures
Isolate PubSubHubbub specs

Added "with repository" context with test repository setup and teardown.
Moved specs referencing api-playground/api-sandbox into context and
updated references to use repository setup in the context.
Isolate Objects specs

Added "with repository" context with test repository setup and teardown.
Moved specs referencing api-playground/api-sandbox into the context and
updated the references to use the repository created in the context
setup.
Isolate Objects specs

Added "with repository" context with test repository setup and teardown.
Moved specs referencing api-playground/api-sandbox into the context and
updated the references to use the repository created in the context
setup.
Isolate Milestones specs

Added "with repository" context with test repository setup and teardown.
Moved specs referencing api-playground/api-sandbox into the context and
updated reference to use repository created in context setup.

Added "with milestone" context that sets up milestone to test against.
Moved relevant specs and updated references to use milestone created in
context setup.
Isolate Issues specs

Added "with repository" context with test repository setup and teardown.
Moved specs referencing api-playground/api-sandbox into the context and
updated specs to use repository created in context setup.

Updated .org_issues to use test_github_org helper instead of hardcoded
dotfiles organization.

Moved .repository_issues_comments, .issue_comment and .issue_comments
specs to the top of the spec file for the sole purpose of making the
contexts nest nicely and less confusing.

Renamed "methods requiring a new issue" context to "with issue".

Renamed "methods requiring a new issue comment" context to "with issue
comment".
Isolate Labels specs

Moved .labels_for_milestone spec to top of file for context nesting
clarity.

Added "with repository" context with test repository setup and teardown.
Moved specs referencing api-playground/api-sandbox into the context and
updated relevant specs to use the repository setup in the context.

Renamed "methods requiring a new label" context to "with label".

Renamed "methods requiring a new issue" context to "with issue".
Isolate Notifications specs

Added "with repository" context with test repository setup and teardown.
Moved specs referencing api-playground/api-sandbox into the context and
changed specs to use repository setup in the context.

Renamed "methods that need a thread context" context to "with thread".
Isolate Contents specs

Added "with repository" context with test repository setup and teardown.
Moved specs referencing api-playground/api-sandbox into the context and
updated specs to use repository setup in the context.