Add Feature: allow pass stream to each asset files before concat

hello @jonkemp, this patch allow transform assets before concat. now the syntax is like 
```$.useref.assets(opts, streamForEachAssetsBeforeConcat1, streamForEachAssetsBeforeConcat2, ...)```
Now we can allow sourceMaps for assets concat in this way: 
```javascript
gulp.task('html', ['scripts', 'styles'], function() {
  var assets = $.useref.assets({searchPath: ['.tmp/', 'src/']},
                              $.sourcemaps.init({loadMaps: true, debug: true}));  // for each asset file load and init sourceMap
  return gulp.src('src/*.html')
    .pipe(assets)
    .pipe($.sourcemaps.write('.'))
    .pipe(assets.restore())
    .pipe($.useref())
    .pipe($.revReplace())
    .pipe(gulp.dest('./dist'))
});
```
if we set nosort to true the tests may fail sometimes.
I think it's beacuse the order of the sync output is undefined.