Respect timeout=0 when launching slave agent, and restart slave when it dies.

The documentation says that a timeout of 0 causes the ec2 plugin to wait forever for an ssh server to start up on a slave, but it wasn't actually doing so.  This change resolves that bug.

We also were having some problems with the slave-agent on the jenkins slave dying due to the OOM killer.  (This was due to the slave job taking too much memory, and the OOM killer targeting the wrong process.)  Now we run the slave-agent in an infinite loop, so it will rise from the dead after being OOM-killed.  Even for people who are more careful about their jobs' memory use, it shouldn't hurt anything.