Add ZMQ_REQ_REQUEST_IDS option.

* Documentation:
The default behavior of REQ sockets is to rely on the ordering of messages
to match requests and responses and that is usually sufficient. When this option
is set to 1, the REQ socket will prefix outgoing messages with an extra frame
containing a request id. That means the full message is (request id, 0,
user frames...). The REQ socket will discard all incoming messages that don't
begin with these two frames.

* Behavior change: When a REQ socket gets an invalid reply, it used to
  discard the message and return EAGAIN. REQ sockets still discard
  invalid messages, but keep looking at the next one automatically
  until a good one is found or there are no more messages.
* Add test_req_request_ids.
Merge pull request #620 from ckamm/req-id

Add ZMQ_REQ_REQUEST_IDS option.
Add ZMQ_REQ_SEND_RESETS option.

This allows making a new request on a REQ socket by sending a new
message. Without the option set, calling send() after the first message
is done will continue to return an EFSM error.

It's useful for when a REQ is not getting a response. Previously that
meant creating a new socket or switching to DEALER.
REQ: Unset reply_pipe if it terminates.

* Fixes a terminate() call on a dangling pointer in the SEND_RESETS
  case.
* Fixes recv_reply_pipe() never receiving a message once the pipe it is
  waiting on is terminated.
Added note about tivotisation
Merge pull request #621 from hintjens/master

Added note to clarify policy for embedded apps
Merge pull request #619 from ckamm/req-send-resets

Add ZMQ_REQ_SEND_RESETS option.
Rename ZMQ_REQ_SEND_RESETS -> ZMQ_REQ_STRICT.

It defaults to enabled. Switch it off to be able to send a new message
before the previous reply has been received.
Merge pull request #622 from ckamm/req-strict

Rename ZMQ_REQ_SEND_RESETS -> ZMQ_REQ_STRICT.
Fix compile error on windows.
Merge pull request #623 from ricnewton/master

Fix compile error on windows.
Port tests to windows and add to cmake build.
Fix up threading code from port tests to windows.
Merge branch 'master' of https://github.com/zeromq/libzmq
Fix running tests from cmake on linux.
Implemented zmq_send_const
Added zmq_send_const test
Fix doc typo
Add #include to string.h in blob.hpp

Required for memmove(), memcpy()
Add try_lock() to mutex_t