Better exception handling in LanLinkProvider
Bubble up exceptions instead of using giant, generic try-catch blocks.
The UDP and TCP listener loops are now where we catch all the exceptions that might happen handling the incoming packets.
Also, the creation of worker threads now happens in the listener loops as well instead of the inner functions.
Finally the broadcastUdpPacket
function has been split in broadcastUdpIdentityPacket
and sendUdpIdentityPacket
(the first calls the second).