Context options: IOThreads and MaxSockets.

This commit adds IOThreads() and SetIOThreads(int) methods for Context and,
for libzmq 3.x, MaxSockets() and SetMaxSockets(int).

Errors that would have been returned from NewContext() will now be
delayed and returned from the first call that really requires a ZeroMQ
context to be created.  This is to support SetIOThreads in 2.x.
Merge pull request #47 from jtacoma/context_options

Context Options: IOThreads(), SetIOThreads() and, in 3.x, MaxSockets() and SetMaxSockets().
Use code generation for socket option methods.

Future commits that changes files under ./gozmqgen should include any
consequent changes in the zmqgen_*.go files.