Revamp AST based patterns.

* Remove compile logic from AST nodes.
* Remove expand logic from AST nodes.
* Add abstract class for implementing Translator pattern.
* Make compiler a translator.
* Make expander a translator.
* Make expanding faaast.
* AST::Parser now converts / into Node::Separator by default.
* Extract pattern validation.
* Add Tree Renderer
* Move AST nodes back into node.rb.
* Start internal api documentation file.

In the future: small commits, please.
improve title