Bind

Optimize bind to cache message length.
Only convert parameters for bind if needed.
Do not Sync() after writing Bind to the wire; wait until after Execute.
Prepare and query

Remove unneeded Sync()'s.
BindComplete response should not yield, as it gives us no information we can use.
Optimization and cleanup

Rearrange and cleaned some of the extended query code for better readabliity and consistency.
The Flush and Sync messages are now singletons, available by their static Default fields.
The Describe and Execute messages now live across many Executes without change, and set _messageLength at constrution.
No need for the Parse message to live outside of Prepare().