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.

I'd do an assert here, though the fast fail isn't important, unlike the logging example below where I think fast fail would be really nice. The reason I say assert rather than exception is that I don't think this needs to be fatal in a production environment.