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.
Therefore the IsInputDirection check. In the parameter substitution logic,
the number each input parameter get is the index of input parameter in the
parameter collection. So it will be correct. This was not handled correctly
before.
Den 21 okt 2014 11:11 skrev "Shay Rojansky" <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);
>
> One more comment (maybe I'm confused). What happens if this is a function
> call and some parameters are OUT parameters? If we're only sending OIDs for
> input parameters can't the order get confused?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/npgsql/npgsql/pull/390/files#r19136937>.
>