Invert relationship of event and meta object.

Meta object encapsulates the event now rather than the other way around.
Some API improvements.

Benefits:
- No arbitrary restrictions on field names in events.
- No need to mangle names with underscores to avoid collisions.

Change-Id: Iec26c22a037ab30e79bc69f46b084c92332f803d