Abused atomic for transaction handling in TestCase.

It isn't necessary to disable set_autocommit since its use is prohibited
inside an atomic block. It's still necessary to disable the legacy
transaction management methods for backwards compatibility, until
they're removed.
Improved the API of set_autocommit.
Merged branch 'database-level-autocommit'.

Fixed #2227: `atomic` supports nesting.
Fixed #6623: `commit_manually` is deprecated and `atomic` doesn't suffer from this defect.
Fixed #8320: the problem wasn't identified, but the legacy transaction management is deprecated.
Fixed #10744: the problem wasn't identified, but the legacy transaction management is deprecated.
Fixed #10813: since autocommit is enabled, it isn't necessary to rollback after errors any more.
Fixed #13742: savepoints are now implemented for SQLite.
Fixed #13870: transaction management in long running processes isn't a problem any more, and it's documented.
Fixed #14970: while it digresses on transaction management, this ticket essentially asks for autocommit on PostgreSQL.
Fixed #15694: `atomic` supports nesting.
Fixed #17887: autocommit makes it impossible for a connection to stay "idle of transaction".
Fixed loaddata command, broken in the previous merge.
Removed forced settings in runtests

Tests that require USE_I18N, LOGIN_URL or certain MIDDLEWARE_CLASSES
should be decorated appropriately.
Ran a test that closes the database connection outside of a transaction.
Switched the admin to use @transaction.atomic.
Ported layermapping for autocommit.
Adjusted query counts to account for new savepoints.
Avoided closing the database connection within a transaction.

Refs #9437.
Deprecated django.contrib.comments.
Remove a special case for comment tests from runtests.py.
Merge branch 'deprecate-comments'
Fixed #11569 -- Wrapped DatabaseCache._base_set in an atomic block.

The atomic block provides a clean rollback to a savepoint on failed writes.

The ticket reported a race condition which I don't know how to test.
Fixed #20010 -- Make sure `last_executed_query` contains it's associated parameters on Oracle.

Also removed some unused imports.
Fixed a refactoring error in ba5138b1.

Thanks Florian for tracing the error.
Fixed #20026 -- Typo in Apache auth docs.
Fixed tests that relied on MANAGERS not being empty.

Regression in d0561242.
Fixed broken link in binary fields doc.
Removed unused imports.

One of these functions didn't exist anymore.