new Event data model

- a new object for tracking event properties
- overloaded log methods for different levels of event data
- placeholders for log levels and output destination
- updates to SessionController to use new logging methods