Time out SelendroidLauncher if the server fails to start up within 3 minutes.

There are three cases where selendroid might have trouble starting the server that resulted
in exceptions or error cases that used to be ignored. These are:

1) If there was a problem communicating via the Android SDK, we logged an error and carried on.

2) If some other exception occurred when starting the server, we logged an error and carried on.

3) If the server never came up, "waitForServer" would wait indefinitely, swallowing any
InterruptedException.

In all three cases, we now rethrow the exception, wrapped as a RuntimeException.