Enable MySQL installation and configuration in one run of puppet

"commands :mysql" and "commands :mysqladmin" in the providers
create a restriction: the provider can only be used if those
commands exist. This is reasonable. What is unreasonable is that
this restriction is checked *at puppet startup*, hence the later
availability of MySQL doesn't take effect until next run.

This patch removes those confines - which unfortunately has the
side-effect of requiring explicit calls to execute().

Further, additional dependencies were added to the mysql types
so that they would be satisfied only once the service is installed
and a mysql root user has been created.

A workaround for fixing the situation where a user was deleted
but not dropped (user will not show up in any tables, but you cannot create
them) was added as well.
Forgot to include class methods for mysql_database provisioner as well.
mysql-backups ERB - allow distant mysql backups
Revert "mysql-backups ERB - allow distant mysql backups"

This reverts commit 6c9aba29c1ff4352ade2e0766e77e9c27f2bd275.
file renaming to be compliant with recommended module structure.
batch fix of deprecated puppet:/// calls without specifying 'modules'.
mysql: remove defined by using common class for definition
mysql::logrotate: add a variable to choice logfile group
Add a logrotate template for Debian
Bad log file name
Improve security of root password
Add mysql::config and use it in mysql::server
onlyif is not necessary in mysql::config
Fix creation of section nodes in mysql::config
Refactor mysql::server*, add mysql::config::*
Fix master and slave classes
Fix log-error and log-slow-queries in mysql::config::mysqld
Remove empty sections in mysql::config
Make it possible to pass a safe name for mysql::config (when containing square brackets for example).
Added [client] section to ~/.my.cnf