Problem: cannot handle NULL passed for message fields

Solution: use same strategy as for all other field types, when encoding
a message from arguments; if null then store empty field/frame.
Problem: was not normalizing event names properly

Did not handle space/hyphen in event names (like "HELLO OK") that
mapped to protocol messages.

Solution: normalize event names and protocol messages at start.