### This PR
- [x] Adds babel.config.json field and babel target for theme devel…opment. It will serve to activate babel plugins in standalone `babel.js` in vendor.
- [x] Updates standalone babel to latest version `7.9`. This should enable all the latest JS features, like [nullish coalescing operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator) and optional chaining.
- [x] Add core babel.config.json that will be used by `discourse_js_processor`. It will use the lates babel plugins from standalone babel.
- [x] Updates `babel_source` in `discourse_js_processor` to support new babel and new configs
- [x] Uses theme babel config to use plugins.
Available plugins in standalone babel are:
```
"external-helpers",
"syntax-async-generators",
"syntax-class-properties",
"syntax-decorators",
"syntax-do-expressions",
"syntax-export-default-from",
"syntax-flow",
"syntax-function-bind",
"syntax-function-sent",
"syntax-import-meta",
"syntax-jsx",
"syntax-object-rest-spread",
"syntax-optional-catch-binding",
"syntax-pipeline-operator",
"syntax-record-and-tuple",
"syntax-top-level-await",
"syntax-typescript",
"proposal-async-generator-functions",
"proposal-class-properties",
"proposal-decorators",
"proposal-do-expressions",
"proposal-dynamic-import",
"proposal-export-default-from",
"proposal-export-namespace-from",
"proposal-function-bind",
"proposal-function-sent",
"proposal-json-strings",
"proposal-logical-assignment-operators",
"proposal-nullish-coalescing-operator",
"proposal-numeric-separator",
"proposal-object-rest-spread",
"proposal-optional-catch-binding",
"proposal-optional-chaining",
"proposal-pipeline-operator",
"proposal-private-methods",
"proposal-throw-expressions",
"proposal-unicode-property-regex",
"transform-async-to-generator",
"transform-arrow-functions",
"transform-block-scoped-functions",
"transform-block-scoping",
"transform-classes",
"transform-computed-properties",
"transform-destructuring",
"transform-dotall-regex",
"transform-duplicate-keys",
"transform-exponentiation-operator",
"transform-flow-comments",
"transform-flow-strip-types",
"transform-for-of",
"transform-function-name",
"transform-instanceof",
"transform-jscript",
"transform-literals",
"transform-member-expression-literals",
"transform-modules-amd",
"transform-modules-commonjs",
"transform-modules-systemjs",
"transform-modules-umd",
"transform-named-capturing-groups-regex",
"transform-new-target",
"transform-object-assign",
"transform-object-super",
"transform-object-set-prototype-of-to-assign",
"transform-parameters",
"transform-property-literals",
"transform-property-mutators",
"transform-proto-to-assign",
"transform-react-constant-elements",
"transform-react-display-name",
"transform-react-inline-elements",
"transform-react-jsx",
"transform-react-jsx-compat",
"transform-react-jsx-development",
"transform-react-jsx-self",
"transform-react-jsx-source",
"transform-regenerator",
"transform-reserved-words",
"transform-runtime",
"transform-shorthand-properties",
"transform-spread",
"transform-sticky-regex",
"transform-strict-mode",
"transform-template-literals",
"transform-typeof-symbol",
"transform-typescript",
"transform-unicode-regex"
```
To use for example, JSX in theme development, you would have a theme `babel.config.js`
```
{
"plugins": [
["transform-react-jsx", { "pragma": "h" }]
]
}
```
`transform-react-jsx` references plugin available in standalone babel, and `pragma` options is the name of `virtual-dom` function in discourse. In transpile process, JSX will be replace with `h` function.
This config differs from the default babel config:
```
{
"plugins": [
["@babel/plugin-transform-react-jsx", { "pragma": "h" }]
]
}
```
Because standalone babel uses` transfrom-react-jsx` internally, we don't need the `@babel/plugin`.