Open Handlebars compilation to externally-compiled AST

This is largely motivated by my compile-to-Handlebars templating language Emblem (https://github.com/machty/emblem.js). Basically, without this change to Handlebars, it gets extremely messy extremely fast to allow another language that compiles to a Handlebars AST to plug into the Handlebars compiler. In particular, the compile/precompile functions would have to be duplicated, and once again once integration with Ember is attempted. 

So, this changes allows you to pass an already-compiled HB AST to compile/precompile which previously could only handle an uncompiled string.