Introduce semaphores for tiered storage.

This commit wraps the tiered storage access componnets in semaphores,
since we can handle several concurrent memory reads.