Regression test and patch for ticket #20924.
Update LazyObject method proxy declarations to simpler form.
Merge pull request #1479 from nickbruun/ticket_20924

Proxy __len__ and __contains__ for LazyObject
Some code simplification
Made Model.__eq__ consider proxy models equivalent

Fixed #11892, fixed #16458, fixed #14492.
Fixed #20777 -- Admin proxy model deletion regression

Added proxy_models tests by Harm Geerts <github@geertswei.nl>.
Fixed #12567 -- Incorrect SQL in model inheritance case

An isnull lookup produced incorrect SQL. This was already fixed
earlier, so only tests added.
PEP 8 cleanup
Fixed #12886 -- aggregation over sliced queryset
Fixed #11881 -- removed junk from aggregation subqueries

There were clauses that weren't needed in the subqueries. These were
ORDER BY, SELECT FOR UPDATE and related selections.
Fixed #12807 -- EmptyResultSet ORed condition

The EmptyResultSet wasn't treated correctly so the end results was
incorrect, too. The bug had been already fixed in master so only tests
added.
Removed versionadded/changed annotations for 1.5
Fixed GIS regression caused by force_subq

Caused by commit 7737305a4f5dc5006d92dac3a61523ad6c2a523a
Fixed #19617 -- Refactored Form metaclasses to support more inheritance scenarios.

Thanks apollo13, funkybob and mjtamlyn for the reviews.
Fixed #8620 -- Updated the Form metaclass to support excluding fields by shadowing them.