Added template caching, updated template class to require compiler and cache, updated README, updated tests