Caching interface (refs #369)

This is the kind of thing I was thinking of Ben. 

There are two basic kinds of caches in this world, ones that are persistent outside of script execution and those that aren't (hence the two families). 

For now, databases should probably cache using the memory cache to do query caching. That said, since Idno uses PDO, it may be easier to cache at the object level. Again, use the memory cache for now, but since every object in the system has a unique ID it should be fairly straight forward to switch that over to a persistent cache of some sort.