dtls connection setup: fix memory corruption, proper watcher setup
ev_init and ev_io_set must never be called on active watchers - we need to cleanup previous connection state before setting up a new one.
ev_init clears the "active" flag, but doesn't remove the watcher from libev internal linked lists (and doesn't clear the "next" pointer for it). This can for example lead to (unexpected) cyclic lists in libev, and libev can loop forever trying to deal with them.
As long as your watcher is active (has been started but not stopped) you must not touch the values stored in it except when explicitly documented otherwise. Most specifically you must never reinitialise it or call its ev_TYPE_set macro.