Alter superuser, createdb, createrole, login, replication status and the connection limit of a role that already exists

Previously we only created a new user, any updates to the defined resource
would not update the role. This patch adds extra logic to modify a role
whenever a parameter is changed.

System tests have also been added to support this.
Merge branch 'alter_existing_user'

* alter_existing_user:
  Alter superuser, createdb, createrole, login, replication status and the connection limit of a role that already exists
Add support for optional management of pg_hba.conf

This patch adds support for disabling management of pg_hba.conf by the module,
through the parameter `manage_pg_hba_conf`.
Merge branch 'manage_pg_hba_conf'

* manage_pg_hba_conf:
  Add support for optional management of pg_hba.conf
Add support for istemplate parameter where creating db
Fix rspec-system
Add support for installing PL/Perl
Document istemplate parameter
Add missing manifests/plperl.pp file
Use $::operatingsystemrelease instead of $::lsbmajdistrelease
Set plperl_package_name to postgresql-plperl on every RedHat family OS except RHEL5
Test plperl only on non standard installation as it does not work on redhat5
Split database_grant up

The code to grant permissions databases and their objects has been
abstracted to `postgresql::grant` and is used by both
`postgresql::database_grant` and `postgresql::table_grant`
Reindent postgresql::database_grant spec
Update readme
Merge pull request #208 from hunner/add_grants

Add grant abilities for more that databases
Tag the postgresql-contrib package as postgresql
Merge pull request #205 from mcanevet/plperl

Add support for installing PL/Perl
Merge pull request #204 from mcanevet/set_istemplate

Add support for istemplate parameter where creating db
Release 2.4.0

Summary
-------
This updates adds the ability to change permissions on tables, create
template databases from normal databases, manage PL-Perl's postgres
package, and disable the management of `pg_hba.conf`.

Features
--------
- Add `postgresql::table_grant` defined resource
- Add `postgresql::plperl` class
- Add `manage_pg_hba_conf` parameter to the `postgresql::config` class
- Add `istemplate` parameter to the `postgresql::database` define

Bugfixes
--------
- Update `postgresql::role` class to be able to update roles when
  modified instead of only on creation.
- Update tests
- Fix documentation of `postgresql::database_grant`