Adding WriteStart and WriteStop to LoggerExtensions.

It gives the ability to write structured logs. Added start and stop to TraceType, WriteStart and WriteStop to LoggerExtensions, and created corresponding tests.
Rename this to `BeginScope(this Logger logger, object state)` and pass an object