In addition to porting it to python3, a number of documentation and code issues were solved:
- doc: proper order of arguments
- doc: mention debug mode (previously via "debug", now "DEBUG=1")
- doc: provide example for manual heartbeat packets
- code: specify timeout for "socket.recvfrom" (avoid hanging)
- code: handle parameters properly (cast to int/float)
- style: format with "black"