halfway change
5_swift-drv: swift driver impl.
5_swift-drv: libraries and tox fixes
merge from master
5_swift-drv: pep8 fix
5_swift-drv: tox deps fix
5_swift-drv: tox deps fix
5_swift-drv: fix swift import issue
5_swift-drv: add db mocking and db module switch in  configs
5_swift-drv: fix module StringIO compatibility
Merge remote-tracking branch 'repo/master' into 5_swift-drv
5_swift-drv: fix json syntax in config.py
Merge remote-tracking branch 'repo/master' into 5_swift-drv
5_swift-drv: 1. disk and swift share same testing suites. 2. swift mocking use real disk read write.
5_swift-drv:  driver calcs and submits md5 etag and checks returned etag
5_swift-drv: 1. swift drv fixes md5 digest.  2. add a missed API for swift
fix(*) : Status codes (200->204) in Pecan 0.6.0

As of pecan 0.6.0 all responses that are returned with
no content, cannot be set to 200 and are overridden to be
204s.

This patch addresses that change
Merge pull request #33 from TheSriram/pecan_upgrade

fix(*) : Status codes (200->204) in Pecan 0.6.0
feat(Transaction ID): Transaction ID per request

This patch adds a Transaction ID per request, and also
adds a custom logger, that attaches this Transaction ID to
every logged message.

The way to use the logger is as follows:

    from deuce.util import log as logging
    LOG = logging.getLogger(__name__)
fix(formatter) : Added a custom log record

Transaction ID now has a custom log record as request_id