Move AST nodes from |Y2R::AST| to |Y2R::AST::YCP|

This is a preparation for introducing Ruby AST, which will be placed in
|Y2R::AST::Ruby|.
Add Ruby AST
Rewrite YCP AST nodes compilation

Before this commit, YCP AST nodes emitted Ruby code directly. Now they
just transform themselves into Ruby AST nodes which deal with code
emitting.

This change means that code dealing with resulting code formatting is
now separated from code that translates YCP concepts into Ruby ones.
And this is how it should be (see the single responsibility principle).

With this change, the emitted code got somewhat uglier (see changes in
spec/y2r_spec.md). This is because some previously used formatting hacks
were removed as part of this change. I'll fix this soon properly on the
Ruby AST level.