mariadb provider for mysql_user + confinement

we confine based on the `mysql --version` output. If the output is
matches 10.x.x-MariaDB.. well this is actually bad. We should check for
versioncmp >= 10.0..

anyway, next up, override insync? to truncate username down to 16 & 80
for these providers respectively.
confine the check of username > 16 to mysql provider
move common code into a function

use that function to for a boolean confine, in which we check for
product_version >= 10.0.0-MariaDB

n.b.: version_check() needs to be class method. class methods in ruby
are declared as:

     def self.foo()
add feature confine to mysql_grant type
adapt spec/unit/type/mysql_user test

remove the check for Exception-al failure if the username is >16.
(we now only test with a username that is >16, and that works)
Add Puppet::Error rescue for spec tests