Move the deprecated method to the bottom
Add caching to property store. 

This has been tuned a bit. Caches values that are in the store and, 
maybe more importantly, caches when values are not in the store.

On a cache miss, the slow part is _.hasKeyPath().
Merge pull request #4 from atom/bo-cache

Cache ::getPropertyValue