Extension:GuidedTour/Refactoring brainstorming

Goals

 * Easy for extension developers to use
 * Easy for admins to use
 * Easy to maintain and enhance
 * Clear and concise, without unused code or features
 * Allow tours to run setup code every time the tour is re-started (passing some setup callback to defineTour)? Currently, they can only run at page load, which for VE can make a difference in some edge cases.  This could become more of an issue as no-reload interfaces become more common.  See https://gerrit.wikimedia.org/r/#/c/72682/7/resources/tours/gettingstartedtasktoolbarve.js