add LRU cache and max size setting to relay to fix memory leak

fix for https://github.com/graphite-project/carbon/issues/185

If you attempt to get an item that's not in a dict, you would expect the exception to be raised, wouldn't you?
So, why should I catch it here?