Regex validation for tag names

Closes #91. Introduces a config option to specify a regex for allowed tag names. If any characters not matching this regex are found, then a validation error will be thrown with the details of the problem.
you could just put the validation at the TagValidator. If there are any validation errors, the transaction will not be commited, you don't have to worry about saving an invalid tag.