change listen semantics do something more sane for now and later

earlier on, libhexabus was allowed to bind the same address from
multiple sockets. this seemed to be a good idea, as it allowed
arbitrarily many sockets to listen and communicate with the rest of the
world. unfortunately, reliability semantics make this impossible to
easily do the same in a sensible manner.

thus, bind listeners only to the HxB group and port and disallow them to
send, but set SO_REUSEADDR for them, and allow bind() to claim any
address without SO_REUSEADDR.

users will have to open multiple sockets if the wish to listen *and*
communicate with devices.
add REPORT packets to libhexabus