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.
This is kind of hokey, but I don't know of a better way to control this flow. The problem is that without this if-then-return bit, the second step of the validation puts an additional message in that reads `The tag "{0}" doesn't exist`, which looks bad.