Caching getRecords

All the patches in #371 plus an example usage caching getRecords() 

We may be able to do this cleaner by finding a better way to fingerprint PDO statements.