Added a stealth option to flush to allow cascades.

This allows using flush on a subset of the tables without having to
manually cascade to all tables with foreign keys to the tables being
truncated, when they're known to be empty.

On databases where truncate is implemented with DELETE FROM, this
doesn't make a difference. The cascade is allowed, not mandatory.
Refactored file_storage tests to avoid depending on servers tests.
Documented TransactionTestCase.available_apps.

This is a private API but it's documented for Django contributors and
committers.
Defined available_apps in relevant tests.
Added TransactionTestCase.available_apps.

This makes Django's test suite significantly faster by reducing the
number of models for which content types and permissions must be created
and tables must be flushed in each non-transactional test.

Most of the credit goes to Anssi. He got the idea and did the research.