Porting SerilogLogger from KExpense

I think this is a nice way to log structured data because users can determine exactly what the structured data will look like in their implementation of LogData. I'll merge this with LoggerExtensions in Microsoft.Framework.Logging