Do not use struct sockaddr_storage.  Avoid 'struct sockaddr *' in APIs.

event2/util.h now provides ev_sockaddr_store, which is a typedef for
an array of uint8_t which is guaranteed to be big enough for whichever
of sockaddr, sockaddr_in, sockaddr_in6, and sockaddr_storage exist on
the platform.  Not attempting to duplicate the internal structure of a
sockaddr eliminates a good deal of confusion about what has what type
when.  Instead of probing for ss_family, we cast ev_sockaddr_store to
struct sockaddr * and use sa_family.

All public APIs that formerly took a 'struct sockaddr *', with the
exception of evconnlistener_cb (which cannot be changed without a
compatibility break), now take 'void *' or 'const void *' as
appropriate.  This reduces the number of casts required in
library-using code.  A number of 'int'/'int *' arguments that should
have been ev_socklen_t have also been corrected.