Tidy up and document JavaScript API

I first tried this using jsduck and found that I disliked it intensely. I tried
out YUIDoc and decided I like it better. It may be better still to use Sphinx's
JavaScript domain, for consistency with the Python codebase, but for now this
seems to work well enough.

In the process of tidying up the documentation, I cleaned up some bits of code.

* Got rid of 'getSchema' altogether.
* Renamed 'setSchema' to 'declareSchema'. 'declareSchema' was always the better
  name, but I kept it as 'setSchema' for consistency with 'getSchema'. (I kept
  a 'setSchema' alias to prevent schema modules from breaking while
  ResourceLoaderModule updates; I will remove it subsequently.)
* Renamed 'validate' to 'assertValid'. The latter name hints at the behavior of
  the method (throw an error if invalid) whereas the former is a bit opaque.
* Rename 'instanceOf' to 'isInstanceOf' and rename its first parameter from
  'instance' to 'value'

Change-Id: I265d3962155b89d6890b7aedf749983ba124fa79