'Read a cached tile.
Start at the first tier and work forwards until a cached tile
is found. When found, save it back to the earlier tiers for faster
access on future requests.'

def read(self, layer, coord, format):

    for (index, cache) in enumerate(self.tiers):
        body = cache.read(layer, coord, format)
        if body:
            for cache in self.tiers[:index]:
                cache.save(body, layer, coord, format)
            return body
    return None
