Upload multiple blocks
Upload multiple blocks
feat(multiple block post): Swift and Disk

Deuce:
    POST v1/{vaultname}/blocks
        -Request body : msgpacked content of
                        dictionary of blockid
                        and blockdata
Swift:
    Asynchronous multiple block post
    py27 - gevent
    py33,34 - aiohttp and asyncio
            - lacks exception handling
Disk:
    Reference Driver
    Synchronous multiple block post
fix:application/binary to application/octet-stream
fix: remove headers.copy()

These are removed on single block put operations, its however needed
in multi block post, to ensure that the headers are updated
everytime with the md5 of block being pushed into swift.
fix: validate if unpacked msgpack is dict

Also changes config.py to employ swift_testing section
for specifying information related to swift, and is no longer
dependent on the version of the swift driver
validation: check for msgpack content in request body

if not return a 400, with a comment saying Request Body
not well formed.
disable: pypy gate

We can also perhaps look at Eventlet for pypy support later.
fix: validation on POST v1.0/vaults/{vault}/blocks

We now make sure that we cant append anything to that endpoint,
otherwise we get back a 404 from validation.
add: dependencies to setup.py

Per Jorge's comment, we need dependencies in setup.py
fix: POST v1.0/vaults/{vault}/blocks endpoint

per Jorge's testing, we have make sure that request.body is called
with read() instead of getvalue()
switch:change order of decorators on post endpoint
fix: validation decorators

Create separate function for checking None values for the POST
endpoint
fix: setup.py

REQUIRES is now extensible based on python version
fix: swift driver namespace

the drivers are now referred to as:
    deuce.drivers.swift.py2.SwiftStorageDriver
    deuce.drivers.swift.py3.SwiftStorageDriver

makes namespacing more clean
Merge remote-tracking branch 'upstream/master' into async_swift_post

Conflicts:
	tox.ini
Merge remote-tracking branch 'upstream/master' into async_swift_post
fix: swift intialization in config.py

Change way in which swift drivers are configured in config.py
fix: setup.py and tests

setup.py now uses extra-requires based on python version
tests for python3k swiftclient, blocks controller now uses
functions inherited from FunctionalTest to create unique vaults,
projectids etc.
fix: setup.py

Comparison operators on python version