Fix Babel 7 breaking issue: Specify placeholderPattern in template call
Fix Babel 7 breaking issue: Specify placeholderPattern in template call

`babel-template` assumes that any string that is all uppercase is a placeholder. 

In Babel 6, there are no problems if you don't provide a value for the placeholder in the call to the created template function. However, in Babel 7 `@babel/template` has new options, one of which is `placeholderPattern`. The default value is ` /^[_$A-Z0-9]+$/` -- so that means that within `react-hot-loader/src/babel/index.js`, the call to create the template functions is trying to take `__REACT_HOT_LOADER__` as a placeholder value, when it is not and should be used as a literal value.

Currently in Babel 7, `react-hot-loader` will produce the following error, steaming from `@babel/template`:
`Module build failed: Error: No substitution given for "__REACT_HOT_LOADER__"`

The simple solution is to provide the options parameter to the `template` call, with `placeholderPattern` set to `/^([A-Z0-9]+)([A-Z0-9_]+)$/` so that only placeholders that __do not__ start with an underscore are evaluated. __The good news is that this does not at all interfere with Babel 6:__ I confirmed that passing the `placeholderPattern` to the Babel 6 variation of `babel-template` just passes through with no error or effect.

I know this may be considered a bit premature since Babel 7 is still in beta, but it's such a small change and it doesn't seem too likely that the options configuration in `@babel/template` will change.

I can confirm that when making this change locally, react-hot-loader no longer throws an error when bundled using Babel 7.
gaearon/react-hot-loader,gaearon/react-hot-loader