Avoid dead links

Because we remove doclets that are not part of the API, there
are cases where linkto will create a link to an undocumented
doclet. We now replace such links with the longname of the
doclet.
Do not remove classes that other classes inherit from
List subclasses for each class

With this change, we no longer need to link to implementations
or subclasses manually.
Simplify the way we annotate observable properties

We no longer add observable annotations to the constructor.
Instead, we just mark getters (and for read/write properties
also setters) with an observable annotation.