Merge pull request #1 from jordansjones/master

Refactored to be interfaces.
Merge pull request #2 from jordansjones/master

More documentation and Interface definitions.
Add IRemovalListener interface.
Documentation for IRemovalListener.
Made IRemovalListener onRemoval return Task instead of void.
Rename parameter for PutAll method.
Partial AbstractCache Implementation

First commit of the port of Guava's AbstractCaches. Still missing most of the stats stuff, documentation.

Reference #3