Further refactor.

See Protocol.hs for details.
4 kinds of port forwarding implemented.

l2r, r2l, dyn-local and dyn-remote. Run ./Server to see the usage.