slightly improve logs/mongo test logging

This makes the displayed error line be the caller of expectSuccess, not
expectSuccess itself.
--get-ready on built meteor now fails on error

Generally reorganize some silent/quiet/background flags to be more
explicit about what is being show/hidden.

The main point here is that the 'background updater' wants to show
banners but ignore errors, whereas --get-ready wants to show errors but
not banners.
Refactor RunLog to be a singleton

The rationale: RunLog is an object that is hardcoded around managing two
other singletons: stdout and stderr. Having multiple RunLogs wouldn't
work well without improving RunLog to have the ability to control other
streams.

We'd like to be able to use RunLog from other places in the tool, most
notably from code called from bundler (while running an app) such as the
npm updater. But threading a RunLog object through that code is
difficult (especially as bundling takes a detour through
release.current.library).
make meteor-npm use runLog

this allows its messages to show up on the proxy, eg.

There's now a mix of runLog and buildmessage in this file, for two
reasons.

First, buildmessage's model is "build up a set of messages and then
display them all at once"; there's no streaming output, which is not
appropriate for the logUpdateDependencies call (which is mostly intended
to explain to users why their build is taking time).

Secondly, buildmessage doesn't yet have a great way of formatting big
blocks of text like "all the stderr from a failed npm invocation". If it
had such a feature, that would replace most of the uses of runLog in
this file.
make bundler use runLog
selftest: wait until stdio processed
Attempt to kill processes after tests
increase a timeout