* Make modern part of the code base
`yarn modern` will now start a dev server with the modern app running.
The debugger is not yet setup
`yarn test` will run all the tests, both Webamp and "modern".
* Let debug work
* Prettier
* Ignore lint errors for now
* Point test at the now skin location
* remove images from registry, use tree lookups
* dont need registry for images anymore
* remove registry
* remove registry, apply groupdefs using lookups
* change function name
* simplify direct descendants
* remove prev siblings methods, just check inside loop for node
* comment on search
* handle groupdefs we dont find
* handle not finding specific id in first <elements> we find
* abstract out findInLexicalScope
* Add Js prefix for non-Maki objects
* make initialize tree out of maki objects
* pass global flag to variables, only need hooks for global variables
* implement new opcode
* start using non generic makiobject
* run scripts
* fix running scripts
* skip standardframe for now
* switch to simple example for now
* make WAL a group
* move xml/init functions to be in GuiObject
* handle creating backing XML nodes for objects created (new) in scripts
* simpler null check
* add js_ prefixes
* only bind event handlers for hooks if they are present
* uppercase for Classes
* make null checking explicit
* need to check undefined, not null
* implement init for adding nodes to state tree
* dont render groupdefs, dont execute scripts in groupdefs
* implement getContainer
* move find descendants to utils
* move images to initialize
* return nodes from initialize, lookup groupdefs
* fix attributes when copying groupdefs
* position groups with x/y
* more parsers for classic modern skin
* if img doesn't exist just return the node without adding to registry
* dont need nested node
* simplify ids
* simplify splitValues
* new variable with name
* Inline includes
Rather than making the content of the included file the _contents_ of
the `<include />` node, we replace the `<include />` node with the
children of the included file.
* Use asyncTreeFlatMap instead of asyncTreeMap
FlatMap is more powerful than map. More importantly, I only want to maintain one tree map function if I can help it.