Refactoring in github3.models

- Add a hook to GitHubObject called _update_attributes. We will use this to
  remove the necessity to override __init__ in every sub-class of GitHubObject
  (and GitHubCore).

- Update the behaviour of as_json and from_json. Fix #276

- Add as_dict and from_dict

- Clean-up some doc-strings
More docstring changes and minor refactorings

Begin using _update_attributes