adding support for script defer, improving the resolution process for `data-esprima-src`

If injecting `es6-module-loader` dynamically or using `defer` on the script tag, the resolution of esprima `src` is going to be a little bit more complex. Aside from that, moving the `esprimaSrc` computation into `loadEsprima` method makes more sense in preparation for forking the logic if the browser supports es6 modules.