Flatten event properties.

Use reflection to flatten event properties and store them as a string:string map.

This allows us to collapse metadata and entries as well as remove the various JSON-specific types.