Add support for moduleName callbacks

For example,

moduleName: function(defaultName, file) {
  return 'foo/' + name;
}

The callback takes two arguments, the default module name and the source
file object. The default module name is file.relative. Anonymous modules
can be configured via the opts.anonymous option.
Bump version to match semver