Refactor Commenter and CommentingPolicy classes

* move related responsibility into `CommentingPolicy` to improve readability flow
* use `position` instead of `original_position` when comparing commented code
  line positioning
* check if message was previously commented on for the changed line