model caching

Adds basic model caching functionality to active record. To enable caching for a particular model, set a static variable called "cache" to true in your model subclass, and configure a cache adapter. 

This is my third attempt at putting a pull request together; apologies for my poor git skills. Please ignore the previous 2.
I like the defensive programming but I don't think we do this elsewhere in this class. Is it necessary?