main.js loading; cell children; :class and :html do! dispatch

- The `main.js` compiled JavaScript file is now loaded from a <script>
  tag in the <head> of the document instead of from a <script> tag at
  the end of the document <body>. This should help with issues that
  arose around using scripts like Google Analytics that work by
  injecting their own scripts into the document body.

- DOM elements can now have a single child that is a Javelin cell. This
  cell child should contain a DOM element as its value. The contents of
  the parent element will be replaced with the value in the cell
  whenever the cell changes.

- The :class dospatch for the do! multimethod now accepts values that
  are maps, strings, or seqable things (set, vector, list, etc.) If the
  value is a string classes are added as in normal HTML markup. If the
  value is a map of classname keyword/string keys and truthy/falsey
  values the classes indicated by the keys are added or removed
  according to the truthiness of the associated value. If the value is a
  seqable collection of keyword/strings those classes will be added.

- The `(do! elem :html "<p>A HTML string</p>")` multimethod dispatch
  provides support for setting inner HTML of an element. You can use it
  to wire elements up to cells that contain HTML strings.