Factor out time doubling retry logic into a single function, keep_trying()

See the docstring of keep_trying() for more information.  The basic idea is
that the function tries something, and if one of the given exceptions is
raised, it prints an error message, sleeps, and then tries again.  The time
slept doubles with each failure, in order to prevent DoS.  It also supports
doing additional error handling when the error is caught.

I also changed instances of catching HTTPError to just URLError, since the
former is a subclass of the latter.
Use keep_trying() in github_get_pull_request_all()

This function will fail if you go over your API quota, which is quite likely
given the current situation (see #147).
Add note about the time doubling scheme
Fix SyntaxError
Fix logic for when the reviews site is down
Merge branch 'master' into keep_trying
Merge pull request #150 from asmeurer/keep_trying

Factor out time doubling retry logic into a single function, keep_trying()
Use public_repo instead of repo when generating OAuth token

`repo' allows access to both public and private repositories,
whereas `public_repo' allows only public repositories.
Fix broken command in README
Merge pull request #159 from flacjacket/fix_readme

Fix broken command in README
Merge pull request #151 from mattpap/public_repo

Use public_repo instead of repo when generating OAuth token

There is no reason for SymPy Bot to have access to private repositories.