Ruby AST: Instroduce Node#{starts,ends}_with_comment?

These methods represent an abstract interface to query whether a node
starts or ends with an comment. This is better than testing
comment_before/comment_after directly, because nodes some can also
start/end with a comment because some inner node starts/ends with a
comment. For such nodes, we'll override these methods.
Ruby AST: Override |{starts,ends}_with_comment?| where needed
Ruby AST: Fix handling of trailers in presence of deep comments