Only read allocate response if allocate request was sent.

When a statement is already allocated, no allocate request is sent, but an attempt is made to read the allocate response. As one too many responses are read this will block on read of the statement type (as there is no packet on the incoming stream).

As far as I can tell this problem never surfaces in actual use, as statements are only prepared (and allocated) once. However I tripped over this when following this example in Jaybird (where a statement handle can be reused and re-prepared).