made getData remember the last key and data value it loaded - this will accelerate has+get combinations on large cache objects by not loading and unserializing the data twice
refactored performance test so the the md5 hashing of test data was done outside the timing loops, added a test for has+get combinations, and pretty-printed the test results
Merge pull request #5 from lordelph/optimize-file-cache

Optimize file cache