**Do you want to request a *feature* or report a *bug*?**
Feature

Right now babel plugin emits globals: https://github.com/facebook/react/issues/16604

```js
window.$RefreshReg$ = () => {};
window.$RefreshSig$ = () => type => type;
```

It would be nice to have them configurable. That would allow to use `import.meta` in environments like SystemJS and have simpler implementation:

```js
import runtime from 'react-refresh/runtime'
runtime.injectIntoGlobalHook(window)

System.constructor.prototype.createContext = function (url) {
  return {
    url,
    $RefreshSig$: runtime.createSignatureFunctionForTransform,
    $RefreshReg$: (type, id) => {
      id = url + ' ' + id
      runtime.register(type, id)
    }
  };
};
```

If you don't mind I could create PR with changes to react-refresh/babel next week.

environment:
```js
{
    "systemjs": "^6.1.4",
    "react": "^16.11.0",
    "react-dom": "^16.11.0",
    "react-refresh": "^0.6.0"
 }
```
const fnNode = fnScope.block;
      if (!hookCalls.has(fnNode)) {
        hookCalls.set(fnNode, []);
      }
      let hookCallsForFn = hookCalls.get(fnNode);
      let key = '';
      if (path.parent.type === 'VariableDeclarator') {
        
        key = path.parentPath.get('id').getSource();
      }
      
      const args = path.get('arguments');
      if (name === 'useState' && args.length > 0) {
        
        key += '(' + args[0].getSource() + ')';
      } else if (name === 'useReducer' && args.length > 1) {
        
        key += '(' + args[1].getSource() + ')';
      }
      hookCallsForFn.push({
        callee: path.node.callee,
        name,
        key,
      });
    },
  };
  return {
    visitor: {
      ExportDefaultDeclaration(path) {