Don't duplicate comments after force push

* Remove `Comment` model
* Update `Commenter` and `CommentingPolicy`:
  - Check for previous comments on pull request
  - If a comment reporting a violation for a given line has already been
    made, do not add a comment reporting the same violation
* Add `GithubApi#pull_request_comments` and `PullRequest#comments`
  methods for fetching and accessing pull request comments
* https://trello.com/c/ha2hgFj2/283-avoid-commenting-a-second-time-after-a-force-push
@gylaz agreed, it's a beast! Do you think having a `LineCommenter` that handles the logic in lines 7-23 of this method would make sense?