plumb the initial handling for the pragma
cleanup the enaml compiler

a bit of refactoring and better documentation
replace compiler base with an ast visitor class
minor var name change
add a new compiler common module

This moves a lot of the common code from the block compiler into a
separate module.
refactor the template compiler
update the main compiler to use the template compiler
add the option for loading compiler helpers from globals
cleanup the template compiler
cleanup the enaml compiler
factor out common functionality
factor out enamldef compiler
Merge pull request #62 from nucleic/feature-pragma-defer

Feature pragma defer