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
fix(*): add Tests for logging

Also includes changes to 400 level responses, which will
include the transaction request id.
fix(py3k):decode uuid to utf-8 for testing purpose
refactor(): Make sure the transaction hook is 1st

The project id hook would also return a transaction ID,
if it gets a 400.
Merge pull request #32 from TheSriram/Transaction_id

feat(Transaction ID): Transaction ID per request