Since I'm traveling I have barely had time to even refactor out the big pile of duplications, but it still needs tests. (We should probably just get rid of tkconch entirely even though it's a fun novelty, but the _main_ problem here is that port forwarding itself needs coverage)