It uses <paper-listbox> internally for better performance, and
automatically deselects items when they are selected, allowing the
same item to be selected repeatedly.
Editor data is now set only with setEditorData(), the `data`
member has been removed. All metadata changes need to be
propagated using setEditorData(). Plugin name, version and crc
now exist in the editor's light DOM.
The Vulcanize script can now build the UI, the element test files, or
both, defaulting to the latter.
The `mkdirp` package is used as it's the simplest way of getting
recursive `mkdir`, ie. `mkdir -p`, to work.
Start with making plugin.js into a module, and re-implementing Plugin
using the class-based ES6 syntax, as it's a lot cleaner. Dispatch
events from setters instead of using Object.observe when changing
values that prompt external changes.
Vulcanize's whitespace stripper doesn't like the ES6 syntax though, so
disable that.
Also start implementing some tests using Mocha and should.js.
Finish refactoring JS Plugin code
Not all Windows-specific code has equivalent Linux code, file path to
URL conversion is hacky, and only that LOOT launches correctly with no
game detected has been tested.
And call it from the archive packaging script and as a post-build step
when building the LOOT executable. Also copy across the font files as a
post-build step.