Use NpgsqlException for backend errors only

- We now throw NpgsqlException only in case of a backend-generated
  issue, as per the DbException/SqlException specs.
- #330
Merge pull request #344 from roji/npgsql_exception

Use NpgsqlException for backend errors only