We can now construct a CCode object from a Source object

This allows us to compile a .tpl file to C code without constructing
the entire libjit context first. This in theory speeds up the smarttpl
compiler as this now uses this not so public api.