Add first draft of caching layer
Add first draft of caching layer

Probably should be pulled out into its own type, since we'll want the
same logic for caching Zipper.Find() results too.

Start of work for #5.

nnuss/carbonapi,dgryski/carbonapi,lyft/carbonapi,errx/carbonapi,arodland/carbonapi,errx/carbonapi