Use multi-threaded guava caches instead of unsynchronized maps

fixes https://github.com/bolinfest/plovr/issues/24