Fix #34: document.createTextNode now coerces the argument into a string

- This prevents creating text nodes that have non-string values, which caused innerHTML access to throw an error