Also, rewrite the way declarators are handled to produce a clearer AST
This makes it easier to pull in this package from github in a dependent module's package.json