Major rewrite. See commit body.

* Implemented the module pattern.

* More robust asset management: ensures that all SchemCanvas objects are
  notified when all the Components have finished loading.

* Added an event registration interface to SchemCanvas, which is how the
  aforementioned asset management works.
Updated README.

Primarily to add information about generating HTML documentation.
Refactored component 'instance' creation.
Renamed currentComponent to 'selected'.

Also, made double-click select the newly added component, but not
'addComponent'.
Added Component joining and unjoining.
Added demo instructions to index.html.
Deselect components when canvas loses focus.