Connection parameters are enum constants

All connection parameters (aka properties) are centralized in a single enum class: `PGProperty`

Not only enum constants are used each time the driver requires the value from a parameter but the class also contains some code that used to be repeated many times (int/boolean value conversions with related exception throwing)

It completely replaces `knownProperties` array in the Driver (which was not up-to-date at all).

Base DataSource code has also been extensively rewriten to use a combination of `Properties` and `PGProperty` to store connection parameters (apart from ones which are defined in jdbc2 optional which are kept as class members), and is used to generate URL for the driver or JNDI references in a generic way.

Other benefits arising from centralization are on a test level:
 - DataSource is checked to ensure all connection parameters can be used in a getter/setter fashion (many were missing)
 - Documentation is checked to see if all connection parameters are present (again, some were not documented or misspelled)