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
 * Point to correct selectors when VE is enabled (e.g. they appropriate ca-edit, and wikitext becomes ca-editsource). There could potentially be a mini-library of selectors GuidedTour helps you with (you could still use arbitrary ones when needed) .Done right, this could potentially handle both VE and skin-specific variations for standard features