Removed obsolete ServerVersion

Also made ConvertProtocolVersion internal
Removed extra_float_digits setting

No longer set extra_float_digits upon connection, let the
user manage this as they see fit.

Fixes #324
Merge pull request #343 from roji/float_digits

Removed extra_float_digits setting on startup
Non-IEnumerable backend message processing

Async will be incompatible with our current yield-based
method of processing backend messages. Converted it to
a simple ReadMessage() which returns a single message
each call, and wrapped it in a provisional yield-based
layer for now.
Replaced ProcessAndDiscardBackendResponses with Consume

Implemented over non-IEnumerable ReadMessage
Replace remaining yield-based backend processing
Basic hand-written async path working

Provisionally implemented async path for ExecuteReaderAsync() and
ReadAsync() all the way down, written by hand. Unit test works.
Auto-generate async counterparts to sync operations
Switched from single-byte to buffer reading

NpgsqlConnector was calling ReadByte(), this has no async counterpart.
Defined a byte buffer (with an arbitrary size for now) for use for all
socket read operations.
Added missing [GenerateAsync] on GetReader
Added type-excluding for async generator

For some types we never want to rewrite to async (e.g. TextWriter)
Fixed some non-rewritten GetReader invocations

System.Data needed to be referenced in order to bind them properly
Async speed tests
CancellationToken support for Execute*

NpgsqlCommands.Execute* methods now properly support CancellationToken's protocol.
When cancellation is signalled through the token, a Postgresql cancellation message
is sent. The resulting NpgsqlError is translated to an OperationCanceledException.
Fixed some bugs

Introduced in c8d0b935d1cef429bbbb5a9a2ad258dab7bbb92d
Commented out all async in .NET 4.0 build config

Solution now builds and passes all tests on .NET 4.0 as well, with no
async support.

We can provide async support in .NET 4.0 later with Microsoft.Async,
although that would mean external dependencies not necessarily wanted
by the user (for .NET 4.0 only)
Fixed write/flush ordering bug
Auto-build AsyncGenerator from Npgsql if doesn't exist

Although it's required for the build process, the AsyncGenerator project
cannot be regular dependency of npgsql, because it would get distributed
with Npgsql. However, we want a AsyncGenerator to get build if necessary,
so that the build process can remain simple (e.g. fresh clones work).

Added a check in the Npgsql project to see if AsyncGenerator has been
built, and if not, builds it.

Warning: this will not rebuild if AsyncGenerator is out of date, only if
it hasn't been built at all.
Async writes in async mode

Previously had only async reads
Removed bad project configs

Accidentally introduced in c8d0b935d1cef429bbbb5a9a2ad258dab7bbb92d