NG: Microsoft Azure storage driver

This is the storage driver implementation to enable hosting the storage backend of the next-generation docker-registry on [Microsoft Azure Blob Storage Service](http://azure.microsoft.com/en-us/services/storage/). In order to fully run the tests, an Azure storage account will be needed. In case you need one, please contact me or you can [sign up for Azure](http://azure.microsoft.com/en-us/pricing/free-trial/) if you don't have an Azure account and create a storage account yourself.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>

-----

/cc: @stevvooe @dmp42 @johngossman
Does this work in partial blocks? For instance, if a transfer is interrupted, leaving a block partially written, what is the behavior? Is the block never written to the backend? How do prevent a partial, corrupt block from being written?