Fixed #21513 -- Added method_decorator support for argumented decorator

Copied attributes into the decorated method and special case __name__
copy as this will not be present on a Class object. Added regression
test to decorator suite.
Fixed typo.
Added a note about a possible name clash.

Thanks Russell for the advice.
Made SQLCompiler.execute_sql(result_type) more explicit.

Updated SQLUpdateCompiler.execute_sql to match the behavior described in
the docstring; the 'first non-empty query' will now include all queries,
not just the main and first related update.

Added CURSOR and NO_RESULTS result_type constants to make the usages more
self documenting and allow execute_sql to explicitly close the cursor when
it is no longer needed.
Ensure cursors are closed when no longer needed.

This commit touchs various parts of the code base and test framework. Any
found usage of opening a cursor for the sake of initializing a connection
has been replaced with 'ensure_connection()'.
Merge pull request #2154 from manfre/close-cursors

Fixed #21751 -- Explicitly closed cursors.
Fixed #21930 -- Only import add_srs_entry if GDAL is installed

Fixed regression introduced by fabc678f93. Thanks Michael Manfre
for the report.
Used the proxied call to staticfiles_storage.url
Removed an unused import which snuck in.
Fix regress added to migrations.test_operations.test_alter_field_pk_fk
Merge pull request #2230 from manfre/patch-2

Fix regress added to migrations.test_operations.test_alter_field_pk_fk
Make mysql's CursorWrapper a contextmanager.
Fixed typo in 3ffeb931.
Reordered deprecation timeline and added back old info; refs #21920.
Fixed #21934 -- Added unicode support in GoogleMap class
Moved a GoogleMap test
Made some PEP8 fixes in docs/ref/forms/widgets.txt

Thanks Siecje.
Fixed #21748 -- join promotion for negated AND conditions

Made sure Django treats case .filter(NOT (a AND b)) the same way as
.filter((NOT a OR NOT b)) for join promotion.
Made staff_member_required redirect to login

Refs #21911.
Fixed #21911 -- Made admin views redirect to login when needed

Historically, the Django admin used to pass through the request
from an unauthorized access to the login view directly. Now we
are using a proper redirection, which is also preventing
inadvertantly changing data when POSTing login data to an admin
view when user is already authorized.
Thanks Marc Tamlyn and Tim Graham for the reviews.