Refactored pool/connection + pool timer on demand

- Allocating of non-pooling connections was being done
  in NpgsqlConnection, moved that code to NpsqlConnection.
- Since the pool's timer was being started statically,
  opening a non-pooling connection would start the pool's timer
  (bug #1011326).
- The pool's timer is now started on the demand, when a pooled
  connection is first requested. When no more connections remain,
  the timer is stopped.