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.
Extracting to `parse_port` sounds good. I think I channeled a bit too much of my inner perl developer trying to keep this to one line.