Instead of attaching a new root-level event listener for bubbling events
for every choices instance, use a simple event delegation script to
handle each event type.
Each event callback function already is coded as if it were fully
delegated, since the events are attached at the document level, so
no changes are needed to detect which element is being called.
Note that focus and blur event do not bubble, so they have been left as
they are.
Also note that the event delegation uses an IIFE purposely instead of
ES6 modules, since the event list should be globally cached, and it
doesn't make sense to instantiate a new scope for each instance (then
we're back where we started!)
fix#643
* Upgrade Webpack to v4
* Upgrade Mocha
* Export unminfied and minified version
* Add browserslistrc
* Remove core.js polyfills
* Run bundle size on pre push
* Run bundlesize last
* Update readme gzip side
+ IE does not support multiple-parameter classList.add() /
classList.remove(); Replace it with single-parameter calls
https://caniuse.com/#feat=classlist
+ IE needs polyfills for Array.prototype.find / Array.prototype.includes