Rework discovery

This solves Issue #6, by updating peer info both on receiving a hail message, and on receiving a reply.

It also adds the ability to specify a custom broadcast address.