merge feat/nosockopt

This feature set provides an alternative way to get the tws connection started.  The essentials are 3 functions:

  - `prepareHandshake()` used to notify the `EPosixClientSocket` object of the socket to be used and the client id
  - `handshake()` performs one step of handshaking, i.e. the initial set up between TWS and the client
  - `wavegoodbye()` performs the goodbye procedure at the end, i.e. any deinitialising communication between TWS and the client

We say it's an alternative because it replaces the traditional `eConnect()` and `eDisconnect()` routines, both of which operate on a socket created by the `EPosixClientSocket` object and hence out of user control (e.g. `setsockopt()` calls might let the internal operations go funky).