Introduce custom iname tags
This introduces a general mechanism to add arbitrary tags to inames. In detail, the following changes are done: * A base class `InameTag` is added. Any tags attached through the `tag_inames` transformation, that are instances of this base class are added untouched * A class `CustomTag` is provided, which allows adding tags as strings i.e. `custom:foo` will result in a tag `CustomTag(foo)` being added to the iname