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.
Oh sorry, I thought the regex was meant to match not allowed characters. It makes sense that way