Hosts formatting

This pull request is nearly a complete rewrite of the hosts plugin to support the metadata formatting proposal described in doc/METADATA.ini and discussed in #118. Additionally it introduces a first proposal for a library (keymetaformatting) that encapsulates useful functions to create the comment meta keys.

 Although I could have spent even more time on this topic, I think it is time for a first review.
is there no guarantee by your code that you will always pass the argument? Just put an precondition.