Shain/client logger

:construction: Still some things not quite fleshed out, but a good starting place.

Basically, this proposes a new logging framework/style that retains backwards compatibility (if needed) and allows a simpler, more modular approach to creating and configuring loggers for the chef client. Also included would be some new loggers giving native support for syslog (finally!) and Windows (covered in a separate RFC)
These options override the default behavior where chef tests if standard out is a TTY to determine if it should enable the use of output formatters (this also adjusts the default log level between `:info` and `:warn`). So `force_formatter` makes chef enable the default formatter when standard out is not a TTY, and `force_logger` makes chef disable the default formatter when standard out is a TTY.

Side note, while that mostly does what the user expects, there are some cases where it's surprising, like when running `chef-client | grep PATTERN`. It's been requested that we remove the auto-switching behavior in Chef 12, we should bring that up on the relevant RFC.