Add a Pithub object to Gitpan::Github

Converting from Net::Github to Pithub is going to be complicated.
Let's do this nice and slow.
Convert get_repo_info() to use Pithub.

I have a feeling the pattern of error control here will be repeated.
Convert is_empty to Pithub.

Passing through per_page doesn't work with the released version,
but it's patched on Github.
Add a patched version of Pithub.

* Conditional requests (ie. caching)
* per_page defaults to 100
* Inherited attributes can be changed. ie. $p->repos(per_page=>1)->get works
* Pithub::Repos->branch to get info about a single branch
Always add a note about the distribution log file.

This test is so flaky, I always want to look at the log file.
Make Github->is_empty throw an error if the repository does not exist.
Give Github time to realize they deleted their own repo.
Make get_repo_info() more robust.

Checking the HTTP response is quicker and more robust than the error
message.  Error messages change and we don't have to parse the JSON.

Anything that's not success or 404 is an error.
Change create_repo() to use Pithub.
Convert delete_repo to Pithub.
Convert branch_info to use Pithub.

All errors are retried.  If it's not found, maybe Github didn't finish creating
the repo.  If the branch isn't found, maybe the push isn't finished.  If there's
another error, maybe it was a Github or network hiccup.

I am not pleased with this.
Convert change_repo_info() to Pithub.

It was untested because it's not used... and it didn't work!  I've
left it in place because it will be useful as a utility to change
all the repositories in the future.

I also learned about the client errors we should be looking for
that indicate a real problem.  I'll implement this next.
https://developer.github.com/v3/#client-errors
Remove Net::Github.  We're now 100% Pithub.

Leave Pithub as a delegate.  It will protect us from Pithub changes.
Turn remote into an attribute so it's cached instead of recalculated.

Probably won't make a performance difference.  Still.
Make the whole object read-only.

It's simpler this way and there's been no need to change the object.
Pithub released with all our needed patches.
Add test_runtime() to test how long things take.

Going to have more backoff tests.
Refactor the sleep part of do_with_backoff into its own method.

Gitpan::Github will need this to do its own more complicated backoff.

Also...
* Fix warning in Gitpan::Test due to perl5i exporting its own time().
* Fix test_runtime() to deal with times which are too fast as well as too slow.
Protect against trying to delete the same repo twice.
Overhaul how Gitpan::Github does its backoff to take advantage of Pithub.

This is probably overkill and needs tuning, but it's nice to have it
all unified.