mediawiki.js: Handle error better in log() and move out of mw.loader

console.error (in Chrome dev tools) takes an Error object. It
renders the stack trace nicely (incl. dynamic references to files)
but doesn't stringify the exception itself. It renders it as an
object (eg. no "{}" instead of "TypeError: Foo bar").

Some of the callers were embedding e.message manually. That was
better though, that still omitted the class (eg. "TypeError").
Error#toString composes the full message incl. class name prefix.

Change-Id: Id5b9872e2050326ab83889e3a806d015ec2ff3eb
mw.loader: Always log exceptions caught from userland callbacks

We usually don't catch these at all (not supposed to, as they're
foreign). But in case of handlePending() we catch them because
we need to ensure the state is kept track of properly (an error
is never final in javascript since execution always continues).

However we should at least log it in that case. We already did this
in case of the error() callback, it now does this for the ready()
callback as well.

Bug: 55989
Change-Id: I61f109178833fed60fbba7725fd47b4ff3d2edf4
Merge changes I61f10917,Id5b9872e

* changes:
  mw.loader: Always log exceptions caught from userland callbacks
  mediawiki.js: Handle error better in log() and move out of mw.loader