Js dataclasses complete

Auto-generate component functions, `copy`, `hashCode`, `toString` and `equals`, fixed the dispatch bugs, rebased and squashed all the commits. Everything seems to work fine now.