Sanitize the string tag passed to DOM components

Because we're using innerHTML to generate DOM Elements, we need to make sure that the tag is sane and doesn't try to do injection.

This wouldn't be an issue if we used document.createElement instead.
Is this something we want to start doing in other places too? It could mess with certain polyfills unless they're run first (which they obviously should be).