Use async API calls for wikitext parsing
To do this, had to make much of the control flow async.
Introduces a cleaner API (WikitextDescription and mw.Title)
for such parsing, with back-compat shims.
The 'test' tour uses the recommended functionality, and 'onshow'
is temporary to show the deprecated API.
Also, add back 'launch other tour' demonstration step to test.js,
and validate step name.
Add descriptions to all steps in QUnit test. Only one really required
it (so .initialize() will resolve), but doing it for all makes it less
error-prone for future copy/paste.
This also fixes T64400 since mw.Api.plugin.parse already specifies
the content model.