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)
Actually I think that is what I'm advocating. We provide the "default" way of initializing a logger adapter (this was my 'args' variable), which then actually is up to the implementer of the particular log device what they need. I may have been using the wrong/confusing terminology for these in the rfc doc and prior comments, which I can fix. 

So I guess it would mean adding a new logger requires 3 things:
- a config entry with appropriate configuration
- a logger adapter that initializes
- the logger implementation that the adapter actual initializes

What would alternatives to this be? @danielsdeleo @sersut