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.
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
Remove obsolete mysql lens
mysql::backup allows now to pass options to mysqldump
Add $mysql_post_backup_hook to mysql::backup
Define default for $mysql_post_backup_hook
corrected mysql_post_backup_hook call - should be BEFORE the exit call
mysql: update backup script
Merge pull request #42 from mremy/allow_n_months_backup

mysql: update backup script
Add option to backup on a mysql slave