Let basic_auth and token_auth disable each other

Only one authentication method is needed. Using both can potentially
confuse two-factor authentication.
authorize: don't use a vanilla session

To properly support two-factor authentication in authorize(), set up
_session.auth if it's not yet been set up. Undo this afterward so we
don't inadvertently log in.
Add Repository#iter_collaborators
Merge pull request #207 from aromanovich/develop

Add Repository#iter_collaborators
Move delete subscription to its rightful place
Fix tests for delete_subscription
Add ping event
Merge pull request #208 from sigmavirus24/move-delete-subscription

Move delete subscription
Merge pull request #209 from sigmavirus24/ping-event

Add ping event
Remove unnecessary import and add TODO comments
Merge branch 'pr/198' into develop
Add tests around the basic_auth/token_auth changes

Ensure the behavior is observed in the tests so this does not regress.
Merge branch 'pr/197' into develop
Add GitHub#revoke_authorizations
Add GitHub#revoke_authorization
Add GitHub#temporary_basic_auth context manager

- Included: Tests!
Use new context manager
Fix removing application auth tokens
Encode all generated error messages
Add decorator for new methods requiring app creds