Implemented Dispose() for NpgsqlConnection

Disposes of the active reader if one exists, and
if the command is prepared, deallocates the backend
prepared statement.

Fixes #158