Possible to send/receive 0 bytes with MPW_SendRecv

By checking the select mask before sending/receiving,
you can disable the sending or receiving if the size
is 0 bytes. This was needed in the MTO to enable sending
and receiving over the same channel at the same time,
but with a different call MPW_SendRecv call.
With a 1-byte buffer, the send and receive statements
over the same socket could get mixed up (garbled).

In pseudo-code:
Thread 1:
// Waiting for header to start receiving
MPW_SendRecv((char *)0, 0, recvbuf, recvsize, pathid)

Thread 2:
// Sending header to start new transaction
MPW_SendRecv(sendbuf, sendsize, (char *)0, 0, pathid)

In MPW_SendRecv empty (NULL) buffers are now consequently also
allowed.
Merged select into one function again

The performance benefit of the old way was negligable
and added more lines of code.
Moved Macros including Logging to separate file
Fixed some log messages
Use built-in setWin
Added return values to InThreadSendRecv

This propagates to MPW_SendRecv, and to MPW_Cycle.
In the latter, error checking code should be added as well.
Merge pull request #11 from blootsvoets/master

MPW_SendRecv with 0 bytes and "select()" code reduction.
I'll merge this in, and I will test this on the Linux platform. :)