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.
I originally had it in there, but then thought having the `Connection` namespace was more descriptive. I'd be happy to move it to `errors.rb` and rename it ConnectionError, or keep the `Connection` namespace if that's not confusing. Also, most (but not all) of the errors in `errors.rb` are raised by `webkit_server`. I have no objection to moving it in there, if you think that makes sense.