Problem: zproto_client method style is too complex

Solution: send method automatically unless it has an immediate = 1
property. Remove distinction between constant/argument/property
fields, all fields simply have a name.
Problem: clumsy use of methods in client API

Specifically, the constructor and destructor aren't visible in the
state machine, so we need to add extra methods for work that could
be done better in these, e.g. connecting and disconnecting to the
server.

Solution: glue new/destroy into constructor and destructor events
in the state machine. To make this work, we remove all manual code
dealing with methods, and generate this in s_client_handle_pipe.

This also it much easier to work with methods, since all code is
generated from the single <method> spec in the model. The only
extra cost is that the state machine must have actions to use the
method arguments in whatever way they're needed.
Problem: generates bad code if method name contains spaces

Solution: mangle method name to C event names.
Merge pull request #125 from hintjens/master

Improvements to client stack