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)

Break appends by line here and elsewhere. Ex:
```C#
builder.AppendLine(...)
       .Append(...)
       .Append(...);
```

The fluent API is nice because you don't need to repeat the `builder.` and ultimately reduces the amount of code the reader needs to consume.