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
Tests for Client-ID validation

This adds tests to verify that the Client-ID header is a UUID.

Change-Id: I38ca4f2b2299fe9a9c002fa21c490e4c4bcc662f
Merge "Tests for Client-ID validation"