Convert bufferevent unittest to use Catch.

Refactor unittest so that they are implementations and not headers.
This is due to the fact that Catch generated unique numbers for test cases
based on line numbers, placing them inside of headers will lead to weird
errors.
For more details see: https://github.com/philsquared/Catch/issues/225
include <string.h> instead of <string>
Remove unneeded cout
Merge pull request #22 by @hellais
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.
log: make libight quiet by default
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