Refactor the monolithic DocumentationGenerator

This will pave the way to support ways other than annotations to map classes to vocabularies. Sadly, tests are still missing.