Use inheritance to describe multiple types of PGErrors.

This resolves long standing bitbucket issue #5 : https://bitbucket.org/ged/ruby-pg/issue/5

It adds the Hash ```PG::Errors``` to convert from SQLSTATE to the proper Exception class. It also adds a rake task for updating the data the Hash is based on.

Exceptions are inherited from PG::Error like this: ```PG::UndefinedTable``` -> ```PG::SyntaxErrorOrAccessRuleViolation``` -> ```PG::ServerError``` -> ```PG::Error```