Names of modules must validated according to Forgre rules

A module name is now validated according to the rules explained
in the Puppetlabs Modules Fundamentals document.

Closes #489