Add an abstraction layer for cache handlers.

This way, anyone can write their own cache handler and pass it to Eos. Also
exposed the data handler and new cache handler abstract classes so you can
easily import them.

Changed the name of initializeData to initializeCache as it made more sense,
since you're creating a cache from your data.