Display library documentation

Some comments about this change:

* I've moved some methods and properties around, basically putting the setter next to the corresponding getter accessors. The reason is that the [Guidelines for Dart Doc Comments](https://www.dartlang.org/articles/doc-comment-guidelines/#variables-getters-and-setters) state that if there is both a getter and setter, we should comment only the getter. So I think it is a good idea, while the setter does not have documentation that it is at least close to the getter having the documentation.
* I've tried to avoid lines longer than 80 characters.
* I've included quite a few TODOs to indicate comments that I'm not so sure about or where I didn't have any idea what comment to put there. You should have a closer look at those.
* I don't quite understand how the transformation matrix works, so I couldn't put reasonable comments on those methods.
I wouldn't add the @deprecated annotation since it's actively used in the Toolkit for Dart and will be used for the foreseeable future. But we should explain why the method is there and the user should consider using the alternatives instead.