A getattr hook in the top-level "tornado" package now imports submodules
automatically, eliminating the need to explicitly reference multiple submodules
in imports
Adapt for Python 3.10 deprecation changes by using asyncio.run
instead of IOLoop.start throughout (except for TCPServer multi-process
docs).
Demos have all been changed but I haven't tested all of them.
setup.py is intended to be run with "python setup.py install"
sources in the tornado module which have main functions/clauses
are intended to be run with "python -m tornado.xxx"
various demos and scripts can be run directly