NpgsqlError fix and improvement

Francisco,

Here is the fix for the NpgsqlError bug that would cause it to quit reading error fields prematurely upon hitting a code it doesn't recognize.

This bug was discovered when running 2.0.12 against a 9.3 backend.  The first commit (bug fix) can be applied easily against older versions.

I've also added some design improvement.

-Glen