Maintain legacy PGError interface

#152 had a long spirited debate about the need to maintain the `PGError` interface. In the end everyone seemed to agree that this was a good idea, but the code that was merged didn't include it.

This pull request rectifies that oversight.