Adding logic for charm tags.

Adding functionality to tag charms. This is a pre-cursor for charm annotations :)
yes :) it works and it was easy to read, allowed me to specify optionality and made it distinct. Does it hurt, you think?