[Init draft, don't merge]

The init draft of a minimum component launcher, it 
- sends editable and data-config down
- uses MutationObserver so when its child's data-config changes, it captures the change and send it to player by fireCustomeEvents
to be exact, it would be like this

```
    <script type="text/javascript">
      (function(){
        var _doc = (document._currentScript || document.currentScript).ownerDocument;
        var versalURL;
        if(typeof _doc._URL === 'undefined') {
          versalURL = _doc.URL; //Chrome
        } else {
          versalURL = _doc._URL;  //all other browsers
        }
      })();
    </script>
```

not sure one way is better than the other but at least we don't have to pass 'src' around