Added tooltips to rendered error messages

throwError() now has an optional tooltip argument, which sets the title
text for the whole error span. For the built-in macros, it consists of
the macro invocation's code.