Rework timers, and fix a udp port bug

 * Don't recycle ports that are used explicitly
 * Don't manage timers directly, instead use threads
Remove some debugging output