Create Base Cache Interface Class

This is what I was talking about in issue #1

I attempted to create a base cache interface class. I then refactored
the other two current cache implmentations to inherit from this
base class.

Then I was able to use ATM as just an interface broker.

This should make it much easier to implment new cache interfaces, like
redis for instance.

- I made sure the tests pass, and made it easier for others to run
tests using their own setup.
- Fixed a bug in the readme