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.
Converted PGUtil stream methods to extension methods