* Configurable opts for babel-preset-env + babel-plugin-transform-runtime
This adds `preset-env` and `transform-runtime` options to the
`next/babel` Babel preset, which are then passed through to those
presets and transforms. This allows configuration to keep next.js
from the default 'maximum' transform, and instead use built-in
implementations of globals, classes, async, and other commonly-supported
features.
Fixes#2989
* Use spread notation instead of Object.assign