Element cache updates

Changed the element cache implementation to use Guava's caches, and removed "LRU" cache related items. Also added appropriate unit tests. This addresses #86.