router: Update TCP route instead of returning ErrExists.

Most likely not fit for merging yet. Thought I'd make it available for a review at least. 

refs: #56
Hmm, this will make the listener unavailable. Ideally we'd just swap the service set without closing the listener. I think @archSeer is working on a larger refactor of this code.