Add tests for Request-Reply and Pipeline pattern sockets.

See the commit messages for details.

* Not all testable statements are covered.
* At this point, there are several failures:
  - test_spec_req: The REQ socket does not correctly discard messages
    from peers that are not currently being talked to.
  - test_spec_dealer/router: On disconnect, the queues seem to not be
    emptied. The DEALER can still receive a message the disconnected
    peer sent, the ROUTER can still send to the identity of the dis-
    connected peer.

Extra notes:
* Is it ok to merge failing tests? 
* Did I do something wrong in the router/dealer destroy-the-pipe test? I didn't expect that one to fail. Setting LINGER on the sockets before disconnecting seems to have no effect.