add a new declarative metaclass

This lays the groundwork for removing the need to subclass when binding
attributes. The expression engine can simply be tested for any d_
wrapped attribute, falling back on the delegate default value otherwise.
Update Declarative to use the new metaclass
update the tracer to read from the instance engine
make ExpressionEngine safe to use when unbounded
delegate to the compiler node for creating enamldef instances
update the compiler nodes and helpers

The compiler nodes are now responsible for building an instance of the
type hierarchy. This breaks Looper and Conditional, but they will be
fixed later.
update compilers to user new compiler nodes

this also removes dead code
shuffle code around to remove a module
fix a typo
make a public function for patching the d_ members
rely on the template node for hierarchy instantiation
update the compiler nodes for templates
update the compiler helpers
update template compiler for new helpers
wip commit of template inst handling