Removes PHP references
Fixed #2304 -- Documented TRANSACTIONS_MANAGED.
Merge pull request #585 from blongden/clarify_php_refs

Removed poor PHP references
Fixed #9962 - Added a testing tutorial.

Thank-you Daniele Procida for the first draft
and shaibi, Aymeric, and others for the reviews.
Fixed #9589 -- Made development web server more robust in the presence of a wider variety of code errors.

Thanks goes to contributor with Trac user 'berto' for the patch.
Fixed a couple of docstring typos.
Fixed #19342 - Added new tutorials to the 1.5 release notes
Fixed #19344 - Documented how to run django-admin in a virtualenv on Windows.

Thanks Hourann Bosci for the patch.
Fixed #19384 -- Documented the behavior of custom managers on abstract models.

This documents the behavior introduced by cc337a74, which is BACKWARDS
INCOMPATIBLE for any attempt to invoke a method on a manager using the
abstract class as the calling class (e.g., AbstractBase.objects.do_something())

Thanks to mhsparks for the report.
Fixed #19472 -- Documented the testing requirements and tools for custom User models.

Thanks to gcc for the report.
Fixed #19412 -- Added PermissionsMixin to the auth.User heirarchy.

This makes it easier to make a ModelBackend-compliant (with regards to
permissions) User model.

Thanks to cdestigter for the report about the relationship between
ModelBackend and permissions, and to the many users on django-dev that
contributed to the discussion about mixins.
Fixed #19368 -- Ensured that login error messages adapt to changes in the User model.

Thanks to un33k for the report.
Corrected tests depending on the error message on the AuthenticationForm.

Refs #19368, and the fix introduced in 27f8129d64292868f6a328f7bf9a1bed67967ff3.
Refactored save_base, part1

 - A change into saving logic - when saving an instance that came from
the same DB we are saving into use UPDATE - if not updated - INSERT
instead of SELECT - if found UPDATE - else INSERT. This should save a
query in majority of cases, for example in this case:
  a = SomeModel.objects.get(pk=pkval)
  # change a's fields
  a.save()
Previously a.save() would have done a SELECT - UPDATE, but the SELECT
is redundant as we know from model._state thate we just fetched the
model from the DB. In worst case the update doesn't actually update
anything and we will still correctly do an INSERT.

Also refactored the internal implementation of save_base() to be a
bit easier to follow. It should also allow customizing the save
behaviour in subclasses.
Refactored save_base, part2

Refactored the way proxy models are handled. The logic was and is
simple - we skip the proxy models but send signals using the proxy
model class. This is hopefully cleaner in code now.
Refactored save_base, part3

Made sure .save() commits transactions only after the whole model has
been saved. This wasn't the case in model inheritance situations.
Refactored save_base, part4

Refactored save_base() to multiple methods: Outermost is save_base()
which does the things that need to be done only once per model save.
The save_base calls _save_parents() which surprisingly saves every
parent of the model. The heavy lifting is done by _save_table() which
saves just a single table. So, typical chain for inherited save would
be:
save_base()
    _save_parents(self)
        for each parent:
	    _save_parents(parent)
            _save_table(parent)
    _save_table(self)
Commit transactions for autocreated models in save()
Minor comment fixes
Added concurrent save test