Implementation of hierarchical tags

Classes implementing IHasTags provide list of simple key=value pairs.
This are called tags in here and they provide meta-data information
about objects. This way it is simple to add information to existing
object without having to drastically change its interface.
PathOutputMessage implements IHasTags interface