WIP: Extract the compilation stuff from ActionView::Template

This is a work-in-progress attempt to extract the compilation code from Template. The end goal is to make the code more modular, and to be able to use alternative compilers.