added some socket communication stuff
ok I figured out some stuff for ProcessManager with sockets.  Both
the server and the master have a ServerSocket: S&M, respectively.
the master should maintain a map of slave (InetAddress, Port) pairs
to their respective SlaveHost instances.
When a slave connects to a master by creating a new Socket to say "process id has terminated",
it should communicate an int processId and a string to M that says "S" or "T".  So
(1, "S") says that process 1 has been suspended.  Whenever the Master gets a "suspend" message,
it will redistribute that process randomly by sending an int to a random slave host using the
SlaveHost.pushProcess() method.  This seems a lot easier than I originally thought, so I'll try
to get it done tonight.  I was actually going down a different path before, so a lot of the shit
I'm committing isn't the way it should be.  I'll get to it as soon as I can.  Bye bye!
added a bunch of shit for message passing between slaves and masters
I've got it set up so there's only one slave per InetAddress
Commands to send:
'S' - suspend
'T' - terminate
'R' - run

TODO make the slave recognize when this is the first run.  this could
be done with a new field in SlaveMessage

it compiles and runs for me though