Dynamically calculate retransmit timeout

Also, fix bug that prevented receiver from marking transmission as
finished.
Don't reset window base every time. Also integarte server.py and client.py

Server.py and client.py do not work flawlessly! And they are not longer
multi-threaded with server.py capable of multiple connections at once as
it was in hw1.
Remove readable from .gitignore and commit it

readable is a 1 MB example text file that is not
byte gibberish but rather readable text.
Can't talk now