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)

Can this end up doing infinite recursion? Do we need to guard against this? I'm thinking maybe not, because it would just be a developer griefing their own app, but worth asking...