Failing to initialize tickpos was causing heapremove to remove the wrong
conn from the heap. (This would be more thoroughly fixed by redesigning
Heap so that zero is used for an item that's not in the heap.)
This helps us to avoid off-by-one and roundoff errors that crop up with
one-second-granularity timers. Also makes it easier in the future to
allow clients to specify hi-res time intervals.