Moved all code from state classes to connector

Apart from the reshuffle, everything was more or less left
as is, as much as possible.

This is a WIP commit, the project does not compile.
Rearranged NpgsqlConnector code

- Grouped relevant methods in #regions
- Converted some fields/properties into auto properties

This is a WIP commit, the project does not compile.
Redid connection/connector state management

- Redefined state as an Npgsql-specific enum on the connector.
  It's the single source of truth on state.
- The state now tracks query state as well, with the values Executing
  and Fetching. Previously the reader was checked to know whether we
  were fetching.
- NpgsqlConnection.State now returns the Connecting value as per MSDN docs
- NpgsqlConnection.FullState now returns ConnectionState's reserved values
  (Executing and Fetching, Broken to be added)
- Removed some remaining legacy code for pre-9.0 backends

All unit tests pass
Add unit test for command cancellation

Thanks @franciscojunior for clarifying in #314.
Merge pull request #329 from roji/state_refactor

Refactor connection state management (#326)