Until now, we've relied on babel's "es2015" preset. This will always
transpile code to pure ES5, even if the syntax has been supported for a
very long time in browsers. This change moves us over to the "env"
preset, which uses browserslist and compatibility tables to
optimistically produce the best syntax. As part of this, we'll be
codifying exactly which browser versions are supported.
We also had some old version dependencies for babel, uglify-js, and
less. These didn't have any major bugs, but there were some security
notices on things higher up in the dependency chain, and updating gets
us some nice things (like a working calc()
in less that doesn't
require weird escaping).