Changes to compile without warnings with MingW.

Includes an autoconf test to detect whether printf("%lld") or
printf("%I64d") is prefered.  (For non-C99-compliant compilers.)
Fix: If multiple calls to recv() were needed, message size was wrong.
Initialize extended part of socket array to zero on realloc.
Add an external context pointer that can be accessed by error handlers.

Since we don't want to change the API, the only solution is to pass it
by a global variable.  We can at least ensure thread safety by
surrounding the error function call in a mutex.
Fix non-blocking semantics of lo_server_recv_noblock() for TCP.

This patch adds a small heap buffer to each open socket that expands
as more room is needed to read larger messages.  The buffer is used to
resume a partially-read message instead of requiring a blocking recv()
loop.

A test is included for checking that blocking doesn't occur if a
partial message is received.
Improve hostname strategy.

No longer use getnameinfo() to try and determine hostname.  Rather,
just use gethostname(), but in the case of multicast, make sure to
give multicast group instead.  Use getnameinfo() to resolve numerical
port.