Await a established connection to ensure the received errors match exactly.

This test failed on Windows x64.
Recalculate the timeout of conn#wait_for_notify and conn#block in
case of socket events that require re-runs of select().

This previously caused a timeout higher than the given value,
because the timeout was set to the original value for every re-run.
Use nil as PG::Error#result in case of a NULL-result from libpq.

This previously returned a PG::Result object with internal NULL
pointer, that caused a misleading error "result has been cleared",
when accessed.

This fixes issue 166 : https://bitbucket.org/ged/ruby-pg/issue/166
Update History.txt