remove explicit closeSocket() method, close sockets in destructor
make receiving packets asynchronous
bind to random port when binding
make CRC calculation a free function
replace C structs for packets with proper classes

utilities do not compile yet, but the tests pass
replace incorrect header length calculation
send initial InitReliable packets to reserved node liveness endpoint
fix some mistakes
port hexalog and hexaswitch to new packet classes
add the node liveness endpoint to endpoints.h
add a new Packet intermediate class for typed packets
port hexaupload to new packet classes
rename NetworkAccess to Socket
add explicit io_service to Socket
add node liveness reporter
add function to explicitly set up multicast paths
replace InitStyle parameter of Socket with explicit LivenessReporter instances
remove Socket::run, Socket::stop proxy methods
replace implicit binding with explicit binding

otherwise we would require one address per concurrent Socket instance,
not only per concurrent listener.
rewrite packet sending routine to have less explicit parameters