Raise better errors if server fails to start

When `WEBKIT_SERVER_START_TIMEOUT` was reached, `@port` would get set to `nil`. If execution of the `SERVER_PROCESS` returned immediately, `@port` would get set to `0`. This lead to odd cross-platform behavior in `#connect`, which would try to connect to a nonsense port.

Fixes #644.