Plugins are using uninterpolated Grunt templates

The BannerPlugin isn't interpolating the template I am passing in, which
will just about always be the case for someone using it.  I investigated
and it looks like the culprit is in grunt-webpack/tasks/webpack.js:

function getWithPlugins(ns) {
var obj = grunt.config(ns);
if(obj.plugins) obj.plugins =
grunt.config.getRaw(ns.concat(["plugins"]));
return obj;
}

This is clobbering the interpolated text with uninterpolated text.  I
understand why: grunt.config() turned the plugin objects into generic
Object instances and grunt.config.getRaw() restores them to plugin
instances, e.g. BannerPlugin.  The only problem is that grunt templates
end up being reverted too.

This fixes that issue by enumerating all the plugin properties and
processing any strings through grunt.template.process().
Fixed to work for multiple calls to webpack task.

The webpack task can run multiple times for one plugin, so we use
Object.create to copy the plugin before process the templates.
Merge pull request #9 from altano/master

Make Plugins use interpolated Grunt templates (e.g. BannerPlugin)