Binary backend format support

Added infrastructure to enable binary backend formatting.
Added binary conversion handlers for int2, int4, and int8.
Merged existing bytea binary support into new infrastructure, making it transparent.
Renamed some of the conversion functions to be more descriptive.
Added binary boolean backend encoding.
Fix bug where all connectors were using the same type converter options object

Add copy constructor to NativeToBackendTypeConverterOptions.
Keep distinct options object, initially == default, per connector.
Optimize away unneeded calls to UTF8Encoding.GetCharCount(), UTF8Encoding.GetChars, and new string(char[]) in favor of UTF8Encoding.GetString().
Make NativeToBackendTypeConverterOptions immutable and IClonable, kill the copy constructor.
NpgsqlConnector

Added warning comment about E string prefix.
ProcessServerVersion() now private, per FIXME.
Update/correct formatting on recently added functions.
Added comments explaining the UseConformantStrings flag in more depth.
Binary test updates

Add internal flag that fully suppresses binary backend parameter and result formatting.
Add reflection-based code to set and observer this flag in the test suite.
Add a test that reports failure to bind to the flag.
Add a couple tests that suppress binary backend encoding to make sure text encoding is tested on types that support binasy encoding.
Simplified the backend binary suppression support code.
Fix typo'd boolean value.
Reworked the binary backend encoding suppression code some more.
Reworked again

SetUp() is called before every test, which I did not realize.
Now suppression initialization is called exactly once per fixture.
Binary backend encdoding suppression

Refactored a bit the binary backend suppression.
Added back a test which can provide descriptive error information if init fails.
Error handling in InitBinaryBackendSuppression() is improved by avoiding a nebulous "null reference" exception.
Remove incorrectly placed redundant code.
Error message typo fixed.
Merge pull request #41 from glenebob/binay-backend-format

Add Binary backend format support patch by Glen Parker

Added infrastructure to enable binary backend formatting.
Added binary conversion handlers for int2, int4, and int8.
Merged existing bytea binary support into new infrastructure, making it transparent.
Renamed some of the conversion functions to be more descriptive.
Fix bug where all connectors were using the same type converter options object
Add copy constructor to NativeToBackendTypeConverterOptions.
Keep distinct options object, initially == default, per connector.
Optimize away unneeded calls to UTF8Encoding.GetCharCount(), UTF8Encoding.GetChars, and new string(char[]) in favor of UTF8Encoding.GetString().

Binary test updates …
Add internal flag that fully suppresses binary backend parameter and result formatting.
Add reflection-based code to set and observer this flag in the test suite.
Add a test that reports failure to bind to the flag.
Add a couple tests that suppress binary backend encoding to make sure text encoding is tested on types that support binasy encoding.