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.
I ran it through callgrind, but I have no idea on how to interprete the output of kcachegrind. How can I answer questions such as "Is the performance impact neglectable compared to the impact caused by IO?"