Implement common pipeline class

This patch implements a common Pipeline class that can be used in
different areas to mock the way middleware chains work.

Implementation is very simple and straightforward, not much magic is
needed there.

Partially-Implements blueprint storage-pipeline

Change-Id: Ie94008c92d27379b9b2bc83dd895c0daf5565ae8
Use the pipeline for the storage layer

This patch integrates the pipeline between the transport and the storage
layer. This will allow have filters before getting to the final storage
and even implement the ShardManager as a Pipe itself.

Implements blueprint storage-pipeline

Change-Id: I428421d9f3d6c2b8f05597073f341689e186960c