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)

No need to provide a named parameter for the builder or state since it's their names state their purpose. General rule: If you can't decipher what a parameter to a method is, provide a named parameter. So things like `true`, `1234` etc. are just values with no information and don't inform the reader of anything.