Document most everything.

Some things are left undocumented, where they are uninteresting or REALLY
self-apparent. Adds `#[deny(missing_doc)]` to `render` and `device`, but also
some well-placed `#[allow(missing_doc)]`.

Closes #114
That is a real concern. We really need a literate Rust, so we can generate these annotated code blog posts from a real source file that is tested...