Daemon threads & unblocking writes

Set socket reading threads to be daemon in order to allow program to
quit when user requests it.  Set writing to the socket to be a new
thread in order to allow for asynchronous writing to all sockets.
Created empty Job class to be filled in with the required functionality
for a MR job