AST: Kill useless wrapper classes
AST: Process <call> manually

This is a necessary step to get rid of AST::Args.
AST: Kill AST::Args
AST: Process <block> manually

This is a necessary step to get rid of AST::Symbols and AST::Ststements.
AST: Kill AST::Symbols and AST::Statements
AST: Process leaf nodes manually
AST: Kill AST::BuiltinElement, AST::ListElement and AST::YETermElement
AST: Process <if>, <yebinary> and <yebracket> manually

This allows us to get rid of hacks inside AST::If, AST::YEBinary and
AST::YEBracket that dealt with crappy XML structure.
AST: Process collections manually
AST: Process remaining wrappers manually
AST: Process remaining structs manually
AST: Process <symbol> manually
AST: Remove all traces of automatic element processing
AST: Cleanup extract_* methods
AST: Refactor FunDef

Do not store args using a block (which is what XML and presumably YCP
itself does) but using a plain array.
AST: Make Block#kind a symbol

It's more rubyish.
AST: Make Const#type a symbol

It's more rubyish.