Removed classes for simple client messages

Previously, sending a message to the backend involved instantiating
a class, and calling its WriteToStream() method; the instance would
then be thrown away. This caused needless instantiations for a great
deal of messages, and made the workflow more complicated than it
needed to be.

Moved the actual wire-writing code to NpgsqlConnector. This commit
refactors the simple message types: Cancel, Describe, Execute, Flush,
Parse, Password, Startup, Sync.

Relates to #308
Improvements to binding

- We were allocating and managing bound parameter values and format codes lists
  inside NpgsqlBind. Refactored this into NpgsqlParameter - each parameter manages
  their own binding data
- Removed NpgsqlBind class (see previous commit)
- Relates to #308