Support module_name option/spec-metadata

Sometimes the gem's module name is not a CamelCase version of the gem name. Pick this up via an option, or via the gemspec metadata.