Switch to function prototype to allow overridden methods

I extended lru-cache for use in another project, but found that my prototypal methods did not override the methods on lru-cache, because the methods are defined on the object itself, and not on the prototype. This commit switches the method definitions to `LRUCache`'s prototype so that other prototypes can inherit from `LRUCache`.

This pull request passes all tests, should not affect usage or API, and appears to have little to no effect on the benchmarks (correct me if I'm wrong and I'll see what I can do).