Support for both local and remote TCP port tunneling. Includes updated docs and tests. Does not implement dynamic port forwarding (SSH's built-in SOCKS) (uncertain difficulty) nor unix socket (potentially easy).