Make COPY commands leave the connection in a usable state if the block pushing data exceptions either in Ruby land or in the backend.

Before this, an unsuccessful COPY command didn't wait for the error message to come back or reset the mutex state upon an exception. This pops that message off the line so the next out going message doesn't get confused and resets the mutex so that the client code can try again!

@wvanbergen @sprsquish look ok to you folks?