Minimally functional version of show-docs for variant reporting
Put all printing into show-docs

Each component can add its own sections to the documentation
which are all printed in a standard place
Add overview doc section
Add doc to full reporter
Expose interface for type lookup to use in tests
Add required method
Test to compare docs output for variant reporting
Clean up how property lines are concatenated
max_name_length isn't used anywhere
Add property type to docs
Fix types
Simplify property doc printing, which removes trailing spaces
Rename variable for clarity
Don't compare warning messages
WithTranslatedInputs inherits from Component::Base

These generic classes also need the is_structural attribute
on their properties
Simplify property lookup
Clarify hash construction
is_structural should already exclude id properties
This code was just copied over and is not really needed
Extract methods to clean up doc formating for properties

Also, only say a property is undocumented if none of the
doc fields are filled in