add normalization caching.

Note this now depends on ES5shim for browsers non es5 browsers
Merge pull request #58 from stefanpenner/cache

add normalization caching.