Flushing stdout/err:

http://stackoverflow.com/questions/230751/how-to-flush-output-of-python-print
Version argument + nitpick (better usage msg)

http://stackoverflow.com/questions/8521612/argparse-optional-subparser
Quit command:

http://stackoverflow.com/a/25596386/281545
The client responsible for finding if there are other psync applications
running in the LAN. Should be an independent thread that starts in the
event of changes made by the user.
The server that is responsible for communicating the unknown address
of the server to the broadcasting client.
SocketClient: base class for all clients
Added: TransferClient
Changes to DiscoveryClient so as to inherit the SocketClient
Minor changes to discovery server
Added: Transfer server (Non -thread version )
       Responsible for transfering the changes
Added: ThreadedTransferServer (Thread version, not checked yet for correctness)
Formatting + code style changes committed