Use standard file iteration

Use the standard methods for iterating through the this.files array in
order
to allow the use of the standard structure for the files property.

This allows doing things like this:

'append-sourcemapping': {
  main: {
    files: [
      {
        expand: true
      , cwd: 'src/js'
      , src: ['**/*.min.js']
      , dest: 'src/js'
      }
    ]
  }
}
Merge remote-tracking branch 'origin/standardFileIteration' into mapPathControl
Allow methods for controlling source_map path

Create the following options that will allow the developer to control
the
value for the sourceMappingURL comment (the path to the source map):

* extAppend: extension to append at the end. Default: '.map'
* pathPrefix: prefix for the path (for example 'maps/'). Default: ''
* mapPathCalc: if a function is given for this option, it will be
executed and,
  the returned value used as the path for sourceMappingURL (before
adding the
  pathPrefix and extAppend). The function receives two arguments:
  * The source file path (e.g: src/myscript.min.js)
  * The options object

As an example. If I use the following options:

{
  extAppend: '.map',
  pathPrefix: 'maps/'
  mapPathCalc: function(path) {
    return path.replace('build/', '');
  }
}

And the source file is 'src/build/myscript.min.js'.

Then the result will be:

/*
//@ sourceMappingURL=maps/src/myscript.min.js.map
*/