Bitstring, "char" type, parameter fixes.

This is based on pull request #362 and implements the following:

* BitString are now correctly returned from backend, and is correctly handled in parameters.
* BIT(1) maps to the .NET bool type and other BIT maps to BitString.
* Output parameters now work correctly for prepared queries.
* DbType.Time is now mapped to interval.
* The "char" type now returns a Char instead of a String.
* Type OIDs are sent in the Parse message.
* Optimizations when all format codes are the same in Bind message.
* Automatically infer parameter value types when setting a value.
* New NpgsqlDbType.Unknown that specifies that Npgsql should not try infer the value type, nor cast the value when written to sql, but simply write a literal string in text form.
The order of appearance of the parameters in the query is not important. It
is the order in the parameters collection that matters.
Den 20 okt 2014 18:36 skrev "Francisco Figueiredo Jr." <
notifications@github.com>:

> In Npgsql/NpgsqlCommand.cs:
>
> >
> >              // Write Parse, Describe, and Sync messages to the wire.
> > -            _connector.SendParse(_planName, _preparedCommandText, new int[] { });
> > +            _connector.SendParse(_planName, _preparedCommandText, parameterTypeOIDs);
>
> When I thought about this problem, my idea was to populate this
> parameterTypeOIDs collection from the procedure which handled the
> parameters substitution because there you would know which parameters were
> being used in the query and its order.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/npgsql/npgsql/pull/390/files#r19096178>.
>