Extract CommentingPolicy policy object

This is something I did in my branch https://github.com/thoughtbot/hound/compare/lw-duplicate-comments to make https://trello.com/c/ha2hgFj2/283-avoid-commenting-a-second-time-after-a-force-push easier.

* Extract `CommentingPolicy` object for logic around permitting
  Hound to comment on a line in a pull request
Would it make sense to create a `Comment` without specifying a line? If not, I'd consider using `fetch` here since it will [raise an exception if the `:line` parameter is missing](http://www.ruby-doc.org/core-2.0.0/Hash.html#method-i-fetch) and not just let it be `nil`.