Added a _createElementNoTagNameValidation function

As discussed in #617.

There is one breaking change: Passing a non-string tag name to `createElement` won't throw a TypeError with the message `"Object #<Object> has no method 'toLowerCase'"`, but rather a core.DOMException telling about an invalid character. Browsers [seem](http://jsconsole.com/?document.createElement(true\)) to convert all inputs to strings, so this just changes one faulty behavior.