Change protocol between engine and plugins
Encode nil if message doesn't contain payload
Rename: event.Record -> message.Event
Exchange plugin info for future extensibility
Merge branch 'new-protocol'