Alex/280 github provider

This almost completes the github provider flow. At the very least it shows the way it is going to happen.

The test found in test_end_to_end.py, which mocks out core responses shows it "working". However there are a few missing pieces before it can be used in reality:

  - [x] Provider-specific settings. This concept is missing, as is an api call.
  - [x] Updating branch information. This API call is missing.

Once these are done, the github provider should be working.

However, until we have the following, it won't be particularly useful:
  - Ability to select the repos to monitor
  - A public facing address to which github can POST

Additionally, I think we should do the following clean up after we have got this working fully:
 - [ ] Make the recalculate method a background running task to be taken care of after responding to github.
 - [x] Tidy up the client to be a class with a url (and token) passed in to the constructor.