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.
Nice, that worked! Much cleaner.