Refactor Commenter and CommentingPolicy classes

* move related responsibility into `CommentingPolicy` to improve readability flow
Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.