Removed the AGBExpiringCacheItem protocol in favor of an internal dict

- Added a couple of convenience initializers to pass in a different NSCache object and the expiry life time.
- Made immutable, no longer can change the expiration time interval on an existing cache.
- Added logs, could probably either remove these or make them conditional on some instance flag