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.
Looks nice. But I expected a #0 to exist if #1 is there, even if no inline comment exists.

(because arrays start with #0 by convention)