Initial substantial refactor of discovery thread:
Initial substantial refactor of discovery thread:

* Each activity is timesliced so it dosn't block the others
* No more than one advert is broadcast on each slice

tjguk/networkzero,tjguk/networkzero,tjguk/networkzero