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.
you wrote:
> Okay, I can do that. But then we would also have to create a comment/#0
> whenever there is any comment key. Is this intended?

It should always be a well-formed array (starting from ```#0``` counting up). 
So it should always be added if there is any other comment key.

If no comment exists, no comment node at all should exist. Thats rather a 
general assumption: avoid metadata if it does not give you any information.