[1.5.x] Added compatibility with legacy message length

Added compatibility code to not break when decoding messages
encoded on pre-1.5 versions.
Refs #19387. Thanks Florian Apolloner for noticing the issue.
[1.5.x] Refactored proxy model skipping in get_default_columns()

The refactoring allows custom subclasses to use different default
columns than the base model.
[1.5.X] Fixed #19506 - Remove 'mysite' prefix in model example.

Thanks Mike O'Connor for the report.

Backport of 52a2588df6 from master
[1.5.x] Fixed #19487 -- Used str in the test client's WSGI environ.

This regression was introduced by the unicode_literals patch. The WSGI
spec mandates that environ contains native strings.

Backport of d9a0b6a.
[1.5.x] Fixed #19468 -- Decoded request.path correctly on Python 3.

Thanks aliva for the report and claudep for the feedback.

Backport of 1e4a27d from master.
[1.5.x] Fixed #19509 -- Fixed crypt/bcrypt non-ascii password encoding

Also systematically added non-ascii passwords in hashers test suite.
Thanks Vaal for the report.
Backport of 0dc3fc954 from master.
[1.5.x] Fixed #19497 -- Refactored testing docs.

Thanks Tim Graham for the review and suggestions.

d19109fd37e75ccf29d2ca64370102753dbc7c5b from master.
[1.5.x] Add assertInHTML method to TestCase

Backport of dc704516c240011a9aeda17f631ade35c65cda58 from master
[1.5.x] Add assertJSONEqual method to TestCase

Backport of 089d9ca1df43fb36eaa857e2d617a94a82c6b906 from master
[1.5.x] Use new TestCase methods for equality comparisons

Backport of 8d35fd4c327e05b63c72a1c1e9a4a68de4dddcf0 from master
[1.5.x] Use HTML parser to compare html snippets

Backport of 585aa11d233b7e3e40fe45fa69ef045d8f282345 from master
[1.5.x] Don't rely on dictionary ordering in tests

Backport of b9fc70141abd4c812b03df50452a0d3ed8cd62d2 from master
[1.5.x] Sort HTML attributes on generated forms

Backport of 6b9f130278f98b3a15f7ad1959269c200e084f03 from master
[1.5.x] Made admin generated changelist URLs independent of dict ordering

Backport of c31c2c92b8ef0b58394ac55fa4f61acc07091047 from master
[1.5.x] Fixed a dependence on set-ordering in tests

Backport of 1ae64e96c161229a74efc4235917dcaae7e9cd05 from master
[1.5.x] Fixed HTML comparisons of class="foo bar" and class="bar foo" in tests

Refs #17758

Backport of 8bc410b44536e03ee38a0087256faf367dd98dd9 from master
[1.5.x] Fixed a randomly failing test under Python 3.

Refs #17758.

Backport of e8f07f0 from master.
[1.5.X] Fixed #19204 -- Replaced python2-style exception syntax.

Thanks to garrison for the report and patch.

Backport of 4a71b842662162e0892a9269179421ff2191adba from master
[1.5.x] Prevented caching of streaming responses.

The test introduced in 4b278131 accidentally passed because of a
limitation of Python < 3.3.

Refs #17758, #7581.

Backport of 1c8be95 from master.
[1.5.X] Fixed links to DATABASE ENGINE setting. refs #19516

Backport of f56f6cfa58 from master