Correctly handle reads of a partial header.  #45

If a partial header was read, we previously did not return to the
poll loop.  Instead, a read into the data buffer was attempted.  If
that read actually succeeded (that is, a packet arrived between the
two read calls), then the next attempt to read the header resulted
in garbage size/offsets being attempted.

The fix is to simply check for a partial header read and return to the
poll loop immediately if one occurred.
[XrdCl] Add missing header
[XrdSys] Fix a race in the LinuxSemaphore
Allow testing of undefined set/env vars via if-else-fi (new feature).
Update notes for defined test.
Fix selection of a server when a DNS entry resolves to more than one.
Fix null insertion of hostname in error message when open fails.
Update notes on the selection and message fix.
Correct pthread_cond_timedwait() time calculation and error handling.
Update notes for cond_timedwait() patch.
[XrdCl] Honor request timeouts when processing kXR_wait
Merge from master br.