Add initial LFU

:warning: Still needs LfuMap and docs.

I implemented the LFU this way so that the *oldest* of the least frequently used gets evicted first. I experimented locally and using a heap it was easy to create a situation where a recently added item would get evicted almost immediately upon adding another.