Fixed #19469 -- Removed opts.get_ordered_objects() and related code

The code was dead-code since 2006.
Fixed #18816 -- Removed "trim" argument from add_filter()

The trim argument was used by split_exclude() only to trim the last
join from the given lookup. It is cleaner to just trim the last part
from the lookup in split_exclude() directly so that there is no need
to burden add_filter() with the logic needed for only split_exclude().
Fixed #10790 -- Refactored sql.Query.setup_joins()

This is a rather large refactoring. The "lookup traversal" code was
splitted out from the setup_joins. There is now names_to_path() method
which does the lookup traveling, the actual work of setup_joins() is
calling names_to_path() and then adding the joins found into the query.

As a side effect it was possible to remove the "process_extra"
functionality used by genric relations. This never worked for left
joins. Now the extra restriction is appended directly to the join
condition instead of the where clause.

To generate the extra condition we need to have the join field
available in the compiler. This has the side-effect that we need more
ugly code in Query.__getstate__ and __setstate__ as Field objects
aren't pickleable.

The join trimming code got a big change - now we trim all direct joins
and never trim reverse joins. This also fixes the problem in #10790
which was join trimming in null filter cases.
Added PDF version of SVG file for latexpdf builds.

Thanks Tim Graham for reporting this issue and testing the fix.
Fixed #18718 - Documented django.utils.encoding.filepath_to_uri
Fixed #16679 -- Use caching to speed up signal sending
Replaced the test case hierarchy schema with a vector version.

The OmniGraffle source file is included for future use.
Fixed #19483 -- Improved import error message in contrib.comments

Thanks Valentin Lorentz for the report and the suggested fix.
Fixed #19279 - Clarified order of database setup and Django install.

Thanks colinnkeenan for the suggestion.
Fixed #19197 -- fixed convert_values() for nullable numeric fields

Cleaned up the implementation of base convert_values() a little, and
made sure it accepts None as a value for numeric fields.

There are no tests attached. The reason is that not all of the
convert_values() accept None as a value for numeric fields (for example
sqlite3.convert_values()).

The reason the base convert_values() needs to accept None is that this
situation might arise in custom compilers for 3rd party backends. It
is easy to keep the convert_values() working, so lets do that.
Made sure connections are actually closed in backends tests
Fixed #19485 -- Python 3 compatibility for c2a6b2a4.

Refs #9589.
Fixed typo in WidthRatioNode's error.
Replaced '__' with LOOKUP_SEP in sql/query.py

Thanks to Simon Charette for report.
Fixed #19441 -- Created PostgreSQL varchar index when unique=True

Thanks Dylan Verheul for the report and Anssi Kääriäinen for the
review.
Merge pull request #587 from pyriku/19430-license-setup-py

Fixed #19430 -- Added 'license' value to setup.py
Fixed #17312 - Warned about database side effects in tests.

Thanks jcspray for the suggestion.
Fixed #19442 - Clarified that raw SQL must be committed.

Thanks startup.canada for the suggestion.
Fixed #19470 - Clarified widthratio example.

Thanks orblivion for the suggestion.
Added PASSWORD_HASHERS to settings reference document.