Pass comments from XML to YCP AST
Pass comments from YCP AST to Ruby AST
Put comment processing behind the -c/--comments options

This is a guard against comment processing causing regressions.
Set |Y2PARSECOMMENTS| to |1| when -c/--comments is used

This way we don't have to set it manually.
Add <yconst> to the list of ignored wrapper elements

The <yconst> element started to appear in the XML after comment
processing started to be implemented in ycpc.
Ruby AST: Split |to_ruby| into two methods

  * The |to_ruby| method is still the main interface. By default, it
    just calls |to_ruby_no_comments|. In the future, it will also do
    comment processing.

  * The |to_ruby_no_comments| method is called by |to_ruby|. It is
    supposed to emit bare node code, without any comments.
Ruby AST: Split |single_line_width| into two methods

  * The |single_line_width| method is still the main interface. By
    default, it just calls |single_line_width_no_comments|. In the
    future, it will also do comment processing.

  * The |single_line_width_no_comments| method is called by
    |single_line_width|. It is supposed to compute bare width, without
    any comments.
Ruby AST: Add rudimentary (but generic!) comment processing
Process comments before passing to Ruby AST

Currently we process //-comments and #-comments correctly. Comments
delimited by /*...*/ are coming soon.
First attempt to fix comment delimiters
Add the -x/--xml command-line option

The -x/--xml option make Y2R emit just the XML emitted by ycpc. This may
be useful for debugging.
Ignore comments consisting only of whitespace (without newlines)

These comments do not contribute any meaningful information and we don't
want to use them for formatting.
Don't emit blank lines around method definitions

This will be handled by comment code.
Generate the banner in Ruby AST, not YCP AST

It is simpler and blends better with current comment-handling code.
Ruby AST: Implement #to_ruby and #single_line_width using wrappers

The wrapper methods are reusable. I'll take advantage of that in the
next commit.
Emit the encoding and banner comments before any other comments
Handle doc comments bit more nicely

Before this commit, there was an empty line at the beginning of
translated doc comments. For example, comment like this:

  /**
   * doc
   */

was translated as:

  #
  # doc

This commit fixes the problem.
Improve formatting of generated clients by using blank lines
Improve formatting of generated modules by using blank lines
Add comment-fixing code

This is needed because comment processing in ycpc is not exact (to make
the code better contained).