moves precompile code into a class so it can be tested and extended

This is the first of many pull requests as we are hoping to provide some hooks into deface for extensibility.  

In particular, we are actively working on support mutli-tenant deface.

This commit allows us to override the precompile so that we can have tenant-specific compiled views.