refactored to constructor
use `engines` instead of `cache`, makes more sense from an implementor's point of view
setup defaults, add tests for parsers and engines
Merge branch 'constructor'
update engines to add helpers, per convo with @doowb
v0.2.0