Fix backend protocol version fallback bug

NpgsqlNetworkStream.Dispose() no longer tries to close its Connector unless the Connector has been explicitly attached to it.
Save the NpgsqlNetworkStream on Connector so it can be attached after successful startup.
Cleaned up CloseState.Open().
NpgsqlConnectionStringBuilder

NpgsqlConnectionStringBuilder now defaults to protocol version Unknown.
Make sure NpgsqlConnectionStringBuilder never writes "<key>=<empty value>" to a connection string.
Add a constructor NpgsqlConnection(NpgsqlConnectionStringBuilder)
Store password bytes in an encapulation that wipes old password out before storing new one.
Remove most of the defaults; initialize the private fields instead.
Don't put values into base unless they are different from the value default, and also from that type's default value.
Streams

Fix typo of stream name.
Eliminate need for explicitly creating a delegate.
Change Connector.Stream type to BufferedStream, which is what it always is.
Merge pull request #83 from glenebob/pv_fallback_bugfix

Fix backend protocol version fallback bug
Comments added for clarification.
Shortened unit test run time

ExceedConnectionInPool waited on the default 15 second
connection timeout, reduced to 1 second
Connection string builder

Add a class to describe a connection string value, which handles default values and some conversions.
All values now get a descriptor with defaults.
Remove field initializers, set all defaults using descriptors.
Eliminate some redundant keyword table lookups.
Simplify and make more efficient SetValue().
Get values via this[] directly from the private fields rather than base class storage.
Merge pull request #85 from glenebob/connection_string_builder_2

Connection string builder
Merge pull request #97 from roji/shorten_test

Shortened unit test run time