First cut of the Lazy Pirate client pattern

The ZMQ client connector implements the Lazy Pirate pattern as laid out
in the [ZMQ Guide - Chapter 4][lpp]. The essence is that we attempt to
be more stable in our client requests as we assume the server may not be
available for fulfilling responses.

A connection will be created to the server and data sent with a timeout
on the socket. If the socket becomes readable inside the timeout, we
read the data and go on our way.

If the socket does not become readable in the timeout, we will close and
reopen the socket, send the data again, and again wait for a valid
response or timeout.

If we exceed the number of tries we do not attempt the connection
anymore and we fail with a timeout message to the calling code.

  [lpp]:
  http://zguide.zeromq.org/php:chapter4#Client-side-Reliability-Lazy-Pirate-Pattern
Remove overdefined zmq_context method
Add PB_CLIENT_RETRIES env var for client lpp
Synchronize zmq_error_check function to include source
Fix the benchmark rake tasks
Fix poller timeout on client zmq socket cnxns
Do not send data from zmq connector when in error
Merge branch 'master' into lazy_pirate_zmq_client
Specify server type in benchmark task
Add zmq test (failing) to test client timeouts
Don't shutdown the broker pre-maturely
Merge lazy_pirate_zmq_client in dynamic_discovery

Conflicts:
	lib/protobuf/rpc/connectors/zmq.rb
	lib/protobuf/rpc/servers/zmq/broker.rb
	lib/protobuf/rpc/servers/zmq/server.rb
	lib/protobuf/rpc/servers/zmq/worker.rb
	spec/benchmark/tasks.rb
	spec/functional/zmq_server_spec.rb