Nicer API docs

In addition to fixing the broken links reported in #944, this makes the API docs easier to read for users, and makes the API easier to document for library developers.

Improvements for users include the following:
* Searchable side bar with overview of properties, methods and events
* Source code view
* Nicer layout
* Subclasses of each class are listed
* Event types are inlined, instead of linking to event objects
* Inherited events and observable properties are listed

Improvements for library devs include the following:
* Easier to document events
* Easier to document observable properties