Revisit caching in spring-site application

Prior to this change, Sagan would use SimpleCacheManager instances to
cache rendered guides, REST calls, etc. This was easy to set up but
could be seen as inefficient since each instance is managing its own
cache instance (thus duplicating data).

Multiple changes have been made to use a redis marketplace service when
deployed to PWS:

* remove previous CacheManager configurations
* add Spring Data Redis as a dependency
* revisit models to make them serializable
* revisit @Cacheable and @CacheEvict annotations to avoid caching issues
* use a custom RedisCacheManager to cache entries using RedisTemplates
* create a custom JsonRedisTemplate to store models as JSON in redis
* auto-detect a RedisConnectionFactory using Spring Cloud connector

Fixes #466 #381