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.