[BUG #7142] had to account for whitespace in hasLeadingContent(), to fix comment 'begin' property
[BUG #7142] avoid blank line if comment is first on new indent level

- this is not the issue of this bug but i came across it anyway
- introduced class LineStack, to keep track of which line in the current indent
  level i'm at

- but i think i have to re-do def commentsPretty to call state.add inside, and
  then let state.add call comment formatting function
- this way state.add can better add dangling comments to already processed code
[BUG #7142] re-arranged how tree nodes invoke printing their comments

- nodes only call self.commentsPretty, which in turn calls state.add for all comments
  of the node
- this has the advantage that state.add can handle post-fixing comments to output
  lines that have already be processed ("dangling" comments)
- the actual comment formatting is now done in a "true" .format method for the
  'comment' node type :)