NpgsqlCommand.AppendCommandReplacingParameterValues() and operators @@, @> and <@.

Fix bug that would turn operators @@, @> and <@ in ::, :>, and <: respectively.
Add tests for said operator butchery.
NpgsqlCommand.AppendCommandReplacingParameterValues()

Remove a couple bits of redundant and ineffective code in the scanner.
ParameterCollectionHashLookupParameterRenameBug()

Add test to demonstrate the parameter rename bug that exists with the new hash-based parameter lookup.
NpgsqlParameter[Collection]

Make parameters aware of their owning collection.
Enforce a parameter can belong to any collection only once.
On paremeter name change, invalidate owning collections's hash lookups.
When a parameter's collection changes, also make sure it is marked as unbound.
Add function to remove a parameter by name.
Command timeout (merge PR #117)

Send SET command_timeout = <timeout> to backend when needed.
Extend the Socket.Poll() timeout by 5 seconds to try and guarantee that the backend's timeout error will occur before the frontend's timeout does.