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)
If we have this functionality implemented in `mixlib/log`, instead of having `add_logger` we can have `enable_logger :SyslogLogger true, { option: "blah"} ` or `enable_logger :WindowsEventLogger true, { option: "blah" }` or 

```
loggers [ 
  [ :SyslogLogger, {option: "blah"} ],
  [ :WindowsEventLogger, {option: "blah"} ]
]
```
This way one can also disable the default loggers cleanly rather than trying to decode the other logging options.

Because `add_logger` doesn't give one the option to disable the default loggers.