Split glue work from compiler implementation details from compiler utils.
This way, the implementation can be easily replaced (by config option) while the utils can be reused and the glue work stay the same. As well as providing a better separation of concerns => improved readability.
Restructure compiler code (close #136)
The common infrastructure routines are left in erlydtl_compiler,
while those specific for compiling to .beam files are moved into
erlydtl_beam_compiler and generic stuff is put in erlydtl_compiler_utils.