formatting logs for structured data

If the state of a log message is an `ILoggerStructure`, the console logger will display the result of `GetValues`, one `KeyValuePair` per line. It does this recursively for cases where the  `Value` is an `ILoggerStructure` or an `IEnumerable<ILoggerStructure>` 

![consolestructuredoutput](https://cloud.githubusercontent.com/assets/2818455/5152093/8aff8496-719e-11e4-9bde-8f3836827219.png)

Chatted in person. This doesn't need to return the `StringBuilder` because it's always the same instance. Just pass it around as a parameter.