Write an LRUCache(capacity) class with get(key) and put(key, value).
get returns the value, or None when the key is absent. put stores a value.
When the cache is full, adding a new key evicts the one used least recently. Reading a key counts as using it - that is what makes this LRU rather than first-in-first-out.
Updating an existing key counts as using it too, and must not grow the cache.