Remove printable and printer

The printing capability will be re-implemented as external functions.
Remove syntax definition

The syntax will be re-defined in upcoming commits.
Add visitor, visitable, and other related templates
Define basic syntax classes
Add buffer class for printing
Add raw string printer
Add word component printer
Add word printer
Add simple command printer
Add command printer
Add pipeline printer
Add conditional pipeline printer
Add and-or list printer
Add sequence printer
Merge pull request #140 from magicant/refactor/printer

Redefine syntax and reimplement printer