Use ContextFormatter for imparting context info

Currently, we are using a logger instance adapter - ContextAdapter -
for imparting contextual information into log records (e.g. API
request ids). Unfortunately, the way ContextAdapter is applied to
logger instances makes them unusable for 3rd party libraries: there
is a helper factory function in openstack.common.log - getLogger() -
which obtains a logger instance via standard Python interface and
wraps it in a ContextAdapter instance. 3rd party libraries (e.g.
SQLAlchemy) know nothing about oslo-incubator code, so their log
records in log files of OpenStack services won't have request_id
value set.

In order to fix this issue we can rely on the fact that all log
entries are propagated up to the root logger. Moving imparting of
contextual information into a handler/formatter bound to the root
logger, would allow us to modify log records of 3rd party libraries
too.

DocImpact

If logging is configured using a separate configuration file rather
than via project.conf, deployers can use ContextFormatter formatter
provided by openstack.common.log module in order to impart contextual
information into log messages (e.g. request_id), so that it would be
possible to correlate log messages of third-party libraries like e.g.
SQLAlchemy with requests to API services.

Closes-Bug: #1263714

Change-Id: Ibe6edf1fcf111481abfd750fcbef89209ee9d615
Merge "Use ContextFormatter for imparting context info"