Remove dead code from spec.
Add all necessary structures for the find_by substitution.
Remove boilerplate code from Node by using an attributable (v0.0.2) custom initialiser.
Rename Node#type to Node#name to make Node more akin to Variable, GreedyVariable, etc.
Rename Node to Literal.
Refactor tree classes to remove duplication.
Fix typo.
Update to latest version of Attributable. (Use plain-old Ruby inheritance rather than specialises).