net: stop using `long long` to represent sockets

It was a libneubot-ism to use `long long` to represent sockets,
since it was the most handy way to exchange sockets between Java
and native code (i.e., using jlong).

In libight, we can safely use evutil_socket_t.

I'm not going to delete the code in net/ll2sock.h, however. I
think it's useful to have macros and inline functions to ensure
that the sockets we are moving around are in range.
Merge net/ll2sock.h into common/utils.h

This commit merges net/ll2sock.h into common/utils.h, motivated
by the following reasons:

1) ll2sock.h was not the correct name anymore, since it meant
   `long long to socket`, but now we use evutil_socket_t;

2) ll2sock.h was in net, but was used by stuff in common, so
   it needed to be moved in common anyway;

3) ll2sock.h was so small that we can meld it into utils.h.
common/utils.h: add libight's copyright
common/utils.h: add ifndef-define-endif guards

This avoids accidental double inclusion of common/utils.h.
utils.c utils.h: don't include twice headers

This commit modifies utils.c utils.h so that we don't reinclude
the headers that are already included by event2/util.h.
utils.h: remove long-long-related check

We don't represent sockets using long long anymore, so this
check can be removed from utils..
common/utils.h: better checks for invalid sockets

After reading again event2/util.h and winsock documentation, I think
that the following facts are now clear to me:

1) libevent uses a signed socket type on Windows for convenience, since
   the libevent code uses -1 to indicate an invalid socket;

2) Windows uses an unsigned socket type and uses (~0) as the sentinel
   value to indicate that a socket is not valid;

3) therefore, in libight under Unix a socket is valid if it is greater
   than -1 and not greater than UINT_MAX;

4) in libight under Windows a socket (signed because we are based on
   libevent) is valid if it is different from -1 (signed but equal to
   the ~0 value internally used by Windows).

So, modify common/utils.h accordingly and, while there, also implement
an inline function to normalize an invalid socket value (i.e., to be sure
that an invalid socket is always represented by -1 on Unix).
Add unit test for socket-validity code

To allow for testing of Win32 platform on Unix, I've created
semi-hidden platform specific versions of each function.

The visible functions use #ifdefs to select the proper implementation
depending on the platform on which they are compiled.
Ensure that IghtConnection(fd) checks on fd work OK

This is related to the work done to improve and test the code
that checks for valid/invalid socket values.
common/utils.h: no need to define IGHT_SOCKET_MAX

Since we use IGHT_SOCKET_MAX only for Unix, we can directly
use INT_MAX, so we avoid one extra #define.
common/utils.h: improve and reword comment
common/utils.h: more love for the explanatory comment
common/utils.h: improve invalid-socket-value normalizers docs
test/.../socket_valid.cpp: increase comment clarity
Fix 74ba78bc4674e..., which was wrong
Merge branch 'feature/stop_using_long_long'

* feature/stop_using_long_long:
  Fix 74ba78bc4674e..., which was wrong
  test/.../socket_valid.cpp: increase comment clarity
  common/utils.h: improve invalid-socket-value normalizers docs
  common/utils.h: more love for the explanatory comment
  common/utils.h: improve and reword comment
  common/utils.h: no need to define IGHT_SOCKET_MAX
  Ensure that IghtConnection(fd) checks on fd work OK
  Add unit test for socket-validity code
  common/utils.h: better checks for invalid sockets
  utils.h: remove long-long-related check
  utils.c utils.h: don't include twice headers
  common/utils.h: add ifndef-define-endif guards
  common/utils.h: add libight's copyright
  Merge net/ll2sock.h into common/utils.h
  net: stop using `long long` to represent sockets