Cache template instantiation

Seems like this is a very safe thing to cache, and cuts down on rendering time quite a bit. Open to suggestions on how to make this better (read: acceptable).
`#hash` will very often create collisions. If you're trying to avoid storing the source as a key in the hash, you should use MD5 or SHA1 as a hashing function instead.