Improve error messages in mw.html
This sets the location of errors raised by mw.html.lua to the
calling module, rather than inside mw.html.lua itself. Some errors also
now display the type and position in the argument list of the argument
that caused the error, via the new verifyString function. This should
make it easier for module writers to locate errors in their code.
Also, the format of the error changes has been switched from
"Error message: Explanation" to "error message (explanation)", in
line with other Scribunto library error messages. Type errors
generated with verifyString have been changed to "bad argument #n
in 'html:foo' (expected bar, got baz)", in line with the checktype
function in the libraryUtil library.