Implement LRU for cache framework

If "purge_lru" option is used when creating cache store, the
"expires" parameter for cache_set/cache_update will be ignored.
Instead, all items are placed on an LRU list and when the store
is full, the least recent used one will be evicted.
Merge pull request #597 from getcwd/lru

Implement LRU for cache framework