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.
Remove check_migrations from the runserver command and use the new checks framework to check for unapplied migrations. Don't check for migrations if the DATABASES setting is empty.
Adding tests for check_migrations.
Fixed #21674 -- Deprecated the import_by_path() function in favor of import_string().

Thanks Aymeric Augustin for the suggestion and review.
Fixed #21959 -- Handled Inf/NaN in widthratio tag.

Thanks rmoe for the report and the patch.
Fixed #19373 -- Ported Windows file locking from PyWin32 to ctypes

There wasn't any file locking under Windows unless PyWin32 was
installed. This removes that (undocumented) dependency by using ctypes
instead.

Thanks to Anatoly Techtonik for writing the ctypes port upon which this
is based.
Merge pull request #1997 from dpwrussell/method_decorator_args_fix

Used available_attrs in method_decorator
Merge pull request #2244 from mlavin/21856-migration-checks

Fixed #21856: Allow Empty DATABASES Setting
Fixed #21892: RunPython no longer accepts strings
Fixed inaccuracies in generic mixins documentation.
Fixed #21917: Overly cautious SQLite3 backend for null fields + defaults
Removed unused imports + other flake8 fixes.
Fixed #21954: Raise nice error when serializing datetimes with timezones
Fixed #21247 -- Made method_decorator play nicely with descriptors

When a method decorator was used in conjunction with a decorator
implemented as a descriptor, method_decorator did not correctly respect
the method binding.

Thanks for Graham Dumpleton for the report and initial patch.
Fixed #21967: Added check for object in ModelFormMixin.get_form_kwargs.

Thanks lagovas.lagovas at gmail.com for the report.
Fixed #21968: Bad detection of old-style apps to add initial migration
Raise (pending) deprecation warning for allow_syncdb.
Added a MessageMixin to contrib.messages.views.