postgresql_user: Add support for PUBLIC

This change enables users to add and remove permissions to all roles,
using the PUBLIC user. This is equivalent to using the PUBLIC keyword
in GRANT and DENY postgres SQL commands.

For example, see: <http://www.postgresql.org/docs/current/interactive/sql-grant.html>

Fixes #1833
Add documentation about PUBLIC user
Rewrite best practices section.
Merge pull request #2128 from lorin/postgres-public

postgresql_user: Add support for PUBLIC
mail module: properly set charset
sysctl module: fixed issue when checks_after fail on comparing keys with values separated by white strings
sysctl module: fixed issue when checks_after fail on comparing keys with values separated by white strings
Merge pull request #2131 from lessmian/sysctl_module

sysctl module: fixed issue when checks_after fail on comparing keys with...
Merge pull request #2130 from lessmian/devel

mail module: properly set charset
Fix #2125 and clean up a few things along the way
teach apt module to support --check mode
teach lineinfile module to support --check mode