Implementation of Map with LRU algorithm.

Closes #160.

I considered adding 'weight', but will address that in a separate PR.
I worry a bit about this implementation strategy. It combines insertion order with use order, performs a number of hashes on the key, and mutates the table. I wonder if we'd be better off building our own linked map implementation so that we can directly mutate the linked list. When you want to add weights the entry object will be a natural place to store them too.