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
This allows applications to create an IOLoop to be started in another
thread without making it current in the originating thread.
Update docs to use IOLoop.current() in place of IOLoop.instance() when
starting the loop.
Closes#1390.