Network version

Separated the program into separate client and server programs that
communicate using sockets.