Enforce unicode json output for jsonutils.load[s]()

simplejson module applies some optimizations on ASCII-only unicode
strings which result in non-unicode json output. See details at [1]
and [2]. To make sure we always return consistent json output no
matter which json implementation is used, we should explicitly convert
the input for json.load[s]() to unicode.

If user wants to pass a file object of non UTF-8 encoding to
json.load[s](), she must also specify this encoding as an argument. To
support this scenario too, we've added 'encoding' argument to
jsonutils.load[s]() implementation.

Made all present JSON tests to run on both supported json library
implementations.

Added explicit dependency for simplejson to be able to test different
implementations in unit tests. Distributors still running Python 2.6
are recommended but not required to install simplejson.

Related-Bug: 1314129

[1]: https://code.djangoproject.com/ticket/11742
[2]: https://code.google.com/p/simplejson/issues/detail?id=40

Conflicts:
	test-requirements-py3.txt
	tests/unit/test_jsonutils.py

Change-Id: Ic815ca3df94c33edec9104172048b2cd94b92e3f
(cherry picked from commit 18f2bc1bf080b41a22c70842e7c127da21c63b8b)
On Python <= 2.6, use simplejson if available

Until Python 2.7, stdlib json module was not boosted with a C extension,
meaning bad performance. Try to use simplejson module if available.

RHEL 6.5 is one of the platforms that still ship Python 2.6.

The original idea of the patch belongs to Miguel Angel Ajo Pelayo @
mangelajo@redhat.com

Conflicts:
	openstack/common/jsonutils.py

Change-Id: Ib3dc0b713ed90396919feba018772243b3b9c90f
Closes-Bug: 1314129
(cherry picked from commit a6b2aecf3a75e4bdef493b645112a7944bced1e1)