early DTLS handshake failures would not terminate the read
loop and cause the remaining handshake bytes to be feed to
packet reader, causing an error assertion.
Rework the main read loop to terminate it when the read
event is not longer active and stop the read event on
handshake failure.
Also, make the DTLS handshake erorr message a bit more readable
by appending the WolfSSL error message to it.
Fixes issue #8.
Reimplmenting what is already there doesn't make sense. Switch
to the existing and UDP tunnel support code and handle the data
channel as a connected UDP socket
Switch to a connected UDP kernel socket. Comparing the
local and remote IPs is no longer required and handling
different IP versions and UDP types is automatic.
The WTP logic needs to reopen the socket on demand now.