JsonLayout

A new layout that renders log events as structured JSON documents.
The implementation and setup are similar to the CsvLayout:

```XML
<target name="jsonFile" xsi:type="File" fileName="${logFileNamePrefix}.json">
      <layout xsi:type="JsonLayout">
              <attribute name="time" layout="${longdate}" />
              <attribute name="level" layout="${level:upperCase=true}"/>
              <attribute name="message" layout="${message}" />
              <attribute name="callsite" layout="${callsite:includeSourcePath=true}" />
              <attribute name="stacktrace" layout="${stacktrace:topFrames=10}" />
              <attribute name="exception" layout="${exception:format=ToString}"/>
       </layout>
</target>
```