Passes the dependent module id as another arg to the normalize function of plugins

If I passed the requiring module id to the normalize function of a plugin, I can use it to create a context-sensitive normalization which can be used to return a module that is specialized for the requiring module.  I use this so I can create a simple plugin for automatically generating log4j style loggers as a resource that are used as follows:

define(["logging!module"], function (log) {
  // Note the "logging!module" is a special syntax which instructs the logging plugin to return a specialized
  // logger for the currently defining module.
  log.debug("Log message for this module.");
});

Without the special plugin one would need to write additional boilerplate and have another import:

define (["logging", module], function(logging, module) {
  var log = logging.getLogger(module.id);
  log.debug("Log message for this module.");
});

Note that my logging module in this example serves as both a normal module AND a requireJS plugin which lets me use it either way.

Granted this usage of requireJS may not be in the spirit you'd desired for requireJS because it has nothing to do with loading a resource from some location, but I personally tend to look at the loader as more of a resource provider like an IOCC or service locator.  Further there may be better ways of implementing this pattern even in requireJS but this patch seemed like the least-touch approach requiring only two small additive changes to introduce just enough information to specialize an import, if desired.  

I don't expect much if any existing code to break from this change.