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 addComponent not automatically select the component.
Added unique component IDs.