Change for #2954: add configurable log levels for different transports

There are a number of small changes in this commit.

1) Previously, we 3 loggers, each with a different transport.  We now have 1 logger with 3 possible transports.  That's more in line with winston's design.
2) I removed the deprecated support for the "quiet" flag.
3) I simplified how default values for the transports are set.
4) File logging is now enabled by default.
5) Console and file logging can have different logging level's set, eg `--log-level info:warn`.  If there's no [:lvl] then both transports use the same level.
6) Webhook will use the same level as file.
7) Provided some examples of where I think fail fast asserts would be appropriate for detecting regressions and config problems.

is this an example of where you'd use a fast fail? or is it code you forgot to remove?

if the former, I'd just `throw e` here