(#12412) mysqltuner.pl update

This was an update from the upstream source:
https://github.com/rackerhacker/MySQLTuner-perl/blob/master/mysqltuner.pl
Merge pull request #38 from grooverdan/ticket-12414/mysqltuner.pl-update

(#12412) mysqltuner.pl update
Changed the README to use markdown

Switched the README to use markdown instead of plain text
as is standard with other puppetlabs modules
Merge pull request #40 from blkperl/change_readme_to_markdown

Changed the README to use markdown
+1000
Pretty sure this is a bug, 99% of Linux distros out there won't
ever hit the default.

Moving the variables to just after the case statement will set
them, removing the default part of the case will cause this class
to fail on unsupported distros.
Moved $socket to within the case to toggle between distros.  Added
a $config_file variable to allow per-distro config file destinations.
Instead of hardcoding the config file target, pull it from mysql::params
Use socket value from params class instead of hardcoding.
Removing duplicate declaration
Per @ghoneycutt, we should fail explicitly and explain why.
Ruby and Python's MySQL libraries are named differently on different
distros.
Major refactor of mysql module.

This is a major change to the module and would be released as a new
version.

* Add self.instances to database and database_user for puppet resource.
* Update database provider to use flush method.
* Update module to conform to puppet-lint recommendations.
* Cleanup some unecessary logic in mysql::db define type.
* Move mysql_restart to config class.
* Use class to class dependency instead of resource dependency.
* Change appropriate rspec-puppet tests.
* Add fixtures directory to simplify testing.
* Update raketask and spec_helper to reflect fixture changes.
* Update mysql_password function to support validation.
* Move client installation to a separate class.
* Update documentation and readme.
Merge pull request #41 from nanliu/tb/update

Refactor mysql module.
Fix bug when querying for all database users

This commit fixes an issue in self.instances of
database_user where none of the users were actually
being detected.

There was a accidental '\' in front of the '.' which 
means that it will only consider users that have
one or more '.' in front of the '@'.

This commit removes the '\' so that all users are
returned that have one or more characters in from
of an '@'.
Mention osfamily value in failure message

This commit displays the detected osfamily that
is not supported by this module.

It was previously unclear to users seeing the failure
what the value of osfamily was that was causing the
failure.
Add documentation related to osfamily fact.

In the refacter, osfamily requires facter 1.6.1+ so the readme is
updated with more information related to this change.
Notify mysql restart from set_mysql_rootpw exec

Since the set_mysql_rootpw exec is only created
when the password is being managed, having the mysql
resource (which always exists) reference it leads
to an error when the mysql root password is not being
managed.

This commit resolves the issue by having the set
mysql rootpw exec notify the mysql restart if it
changes.
Merge pull request #45 from bodepd/fix_issues_from_nans_massive_pull_request

Fix issues from nans massive pull request
Merge pull request #44 from nanliu/tb/update

Add documentation related to osfamily fact.
Moved class dependency between sever and config to server

Prevously, the server class declared the config class and
the config class had a relationship to the server class.

This actually meant that the config class could never be declared
by itself b/c it exlicity depended on the server class (which it
could never resolve externally b/c it would result in a redeclaration
of the config class itself.)

This issue actually made it impossible to test the manifest on its
own with rspec-puppet. This commit makes it much easier to write
rspec tests for the config class.