Add documentation generation, cleanup "dtx" and top level packages.

Minor cleanups and changes to functionality also, undoing some things
I consider design mistakes that I have not touched for a very long time.

Things like `collection.first()` - now returns a Node, not another Collection.

Will attack the remaining packages later.