Updated todo.md
Renamed run() method to start() to remove confusion from likes of ServerSocket, ClientSocket, ApplicationSocket.
Updated todo.
Added new tests. Refactored old ones.
Updated todo.