Fixed #7231. Add ``join`` argument to ``QuerySet.extra()`` method.

Conflicts:
	django/db/models/sql/query.py

Conflicts:
	django/db/models/sql/query.py
Fixed #18004 -- Don't silently mangle badly encoded POST filename data.

Use `force_unicode(strict=True)` when decoding POST filenames, to
trigger a loud failure with a useful error.

Don't send people down the rabbit hole trying to debug "current
transaction is aborted" errors where it was the previous statement that
triggered the error, but the previous statement is not logged anywhere
because of the encoding error.

Conflicts:
	django/http/multipartparser.py
Fixed #13291 -- Add the ability to customise terminal colours.

Add a `palettes` argument to `django.core.management.color.color_style()`
and `django.utils.termcolors.parse_color_settings()`.

Conflicts:
	django/utils/termcolors.py
	tests/utils_tests/test_termcolors.py

Conflicts:
	django/core/management/color.py
	django/utils/termcolors.py
	docs/ref/django-admin.txt