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.
Removed necessary :C conversion - fixed
Problem: it's too expensive to write proper client stacks

Solution: generate actor stacks for client side of protocol, using
same state machine model as for servers.
Problem: generated API is not handling timeouts or interrupts

Solution: return -1/NULL for methods when they interrupt while
reading from sockets.
Problem: method field names aren't normalized for C

Solution: use :c where needed to normalize into C names.
Merge pull request #116 from hintjens/master

Added client generator