future parser converts explicit undef to empty string

With the future parser and puppet 4, explicit undef seems to be converted to blank string for erb templates
This change allows you to continue to omit config options in the main my.cnf
mysql_database: prevent syntax error with collate=>'binary'

On MySQL v5.5.38, creating a database such as:

	CREATE DATABASE `mydb` CHARACTER SET binary COLLATE binary;

seems to hit a parser bug. A workaround is simply to quote COLLATE
`binary`. As the quoting is harmless, and for aesthetics, quote both
the CHARACTER SET and COLLATE arguments.
Merge pull request #565 from mmonaco/master

mysql_database: prevent syntax error with collate=>'binary'
(MODULES-1330) Change order of revokation
Merge pull request #569 from fnerdwq/mysql_grant_revokation

(MODULES-1330) Change order of revokation.
Merge pull request #568 from edestecd/master

future parser converts explicit undef to empty string
Trailing commas were breaking things on 1.8.7
Merge pull request #573 from mhaskel/fix_187_unittests

Trailing commas were breaking things on 1.8.7
Change sql param to default to undef instead of empty string

The future parser treats the empty string '' as a truthy value. This
means that mysql::db will always try to include the db import exec in
the catalog. With the empty string as the $sql value, the command
attempts to import '' into a database, which fails. This patch changes
the default $sql value to undef so that the exec won't be included if
there is no sql to import.
Merge pull request #577 from cmurphy/fix_future_errors

Change sql param to default to undef instead of empty string
Merge remote-tracking branch 'upstream/master'

follow up with upstream