improvement for using virtual steps in big apps

some refactoring of the *show* function

improvement for virtual steps is additional option, which help determine
target scope which will be used to evaluate onShow or onProgress
callbacks
it's affecting only virtual steps, as in normal case everytime it's the
same scope
this improvement can be disabled for whole application (by new option in tourConfig)
or individually by use-source-scope="true" attribute on selected virtual
tour steps