Trivial: rearrange header slightly
Drop private pointer

We can do without nowadays.
Trivial: Don't use HAVE_CONFIG_H
Some more private cleanups
Add docs
Add rubberband selection
Add autoscrolling

When the pointer leaves the widget during a rubberband selection,
we scroll to enlarge the selection.