Add separate requirements file for Python 3

Separate requirements-py3.txt file allows to specify different
dependency list for python 3. For example, now python-memcached doesn't
support py3k and some other dependencies may appear later.  Also tox.ini
was changed to use proper requirements file for py33 testenv.

Partially-implements: blueprint py3k-support
Change-Id: I55aa0e3364124f27532465fcaa0b9316c7dc67e6
Fixed a few typos in the codebase

Change-Id: If74311ae213852c54e66b835bc4d29a5ec76411e
Merge "Add separate requirements file for Python 3"
Synced jsonutils from oslo-incubator

The sync includes change that makes sure we get unicode-only dicts from
jsonutils no matter which json module implementation is selected.

The latest commit in oslo-incubator:
- 0f4586c0076183c6356eec682c8a593648125abd

The sync adds a new 'strutils' module that is now used in jsonutils.

Change-Id: Ic815ca3df94c33edec9104172048b2cd94b92e3f
Closes-Bug: 1314129
V1 Tests JsonSchema

Refactored V1 tests to include JsonSchema validation where appropriate
Added necessary schema entries to the schema dictionary

Implements: blueprint jsonschema-validation

Change-Id: I474265948253a932ef3dbb45bca34b27b798447d
Fix sqlalchemy storage driver for Python 3

The sqlalchemy.BINARY and sqlalchemy.LargeBinary in Python 3 works with
'bytes' not 'str'. This patch adds explicit proper encoding/decoding
before saving such fields.

Partially-implements: blueprint py3k-support
Closes-bug: 1321840
Change-Id: Iddeeab3bee84fecea43551d3f2924973e917382c
Updated from global requirements

Change-Id: Ie4526565d9f0e3f93beeced5e1536f2c1d6729a0
Fix handling of request/response body for Python 3

In Python 3 request/response body is represented as `bytes`. This commit
adds implicit decoding from/to bytes before parsing json from it. Also
the same problem was fixed for the tests: for example, parsing response
from simulate_request requires decoding it to text string.

Change-Id: I0d210a9bc4e3f24b4440588c96e7c06ca2411b64
Partially-implements: blueprint py3k-support
Merge "V1 Tests JsonSchema"
Merge "Fix sqlalchemy storage driver for Python 3"
Merge "Fix handling of request/response body for Python 3"
Removed now unnecesary workaround for PyPy

Change-Id: I259d5b779117e22869ea53b4208acc3ac1232689
Prepare marconi for localization

Setup configuration for localization and add
initial translation template like it's done for all other OpenStack
projects. Once this is in, we can add the usual translation bot job to
sync translations with transifex.

Change-Id: Ia3be79e8ddfa9d68474e5a2bb2c7928ec5beca96
Small fixes in storage drivers for Python 3

Fixes in this commit include use of list comprehession instead of map,
since on Python 3 map returns iterator, not list; add proper iterator
interface for HookedCursor and some other minor changes.

Partially-implements: blueprint python-py3k
Change-Id: I211477cbd018b0dd2ffe0d280ff24dd4c5021324
fix: Checking whether queue exists adds latency

This patch uses oslo.cache to cache the call to
QueueController.exists for a few seconds. A decorator was
added to marconi.common in order to DRY up the caching
logic between QueueController and sharding.Catalog.

MessagePack is used to normalize the cached data, since it
is very fast at encoding and esp. decoding, and creates
very compact representations.

Closes-Bug: #1245573
Change-Id: Id4fd822fd907815ce8da2f03e51f888b6c63ad6b
Re-enable tests affected by #1321840

Uncomments tests that were failing due to the above bug

Change-Id: I0945fd50fd00c53808412bbc6a837dc153abef25
Merge "Small fixes in storage drivers for Python 3"
Refactor auxiliary methods for MongoDB unit tests

This patchset DRYes the implementation of auxiliary
functions in MongoDB unit tests.

Change-Id: Ie6a3bfc0d20d8d30bd484a9fec2063e1c191c7c4
Closes-Bug: #1257391
Decoupled Unit Tests

Made new unit test base classes and folders to contain version specific tests.

Change-Id: I2b997da21b2484ee03d9f720588d9c9d8c722b3c
Implements: blueprint decouple-unit-tests
remove default=None for config options

In the cfg module default=None is set as the default value. It's not
necessary to set it again when defining config options.

Change-Id: Idc8e07b67c884c4c6e6632f7e31efd384353e34c
Closes-Bug: #1323975