Support saving GitHub credentials

It seems (relatively) safe and (very) convienient to use GitHub
[personal access tokens](https://help.github.com/articles/creating-an-access-token-for-command-line-use)
when authenticating to the GitHub API when publishing files.

This is configured by setting the ``GITHUB_USERNAME`` and
``GITHUB_ACCESS_TOKEN`` variables in ``openelex.settings``.

Fall back to prompting for the GitHub username and password
when these settings aren't set.

Also support two-factor auth when prompting for the password.
This might have limited mileage as I was prompted multiple times
for the 2FA code and it didn't always work.

Addresses https://github.com/openelections/core/issues/198
Merge branch '198-publish_support_2_factor_auth' into dev

Merge in code that uses a setting for a GitHub personal access token
to authenticate during publishing.

Also add hooks to prompt for two-factor auth, but I found that I got
prompted way more than I expected and it didn't work very well.

Addresses #198