Refactor golodoc

Adds object for document elements (augmentations, structs) and clean the
code.

This should ease the named augmentations documentation generation (see #194).
Any good reason to subclass rather than compose?