Optimization

Don't save lastRowDescription in the backend response handlers; save it in DataReader instead.
Send Portal Describe only once; save the row description for subsequent Executes.
Use a more efficient path to DataRow disposal on protocol version V3.
Shorten plan and portal names for a small network bandwidth savings.
Interlocked.Increment not needed for plan and portal number increments.
Bump the buffer size on BufferedStream to 8192.