Converted to continuous concatenation

Using gulp-concat in a pipeline after a gulp-watch doesn't work, because `watch()` doesn't emit an `end` event to trigger the concat build.

This converts gulp-concat to a continuous build, which will build the concatenated file on each incoming file. Excessive rebuilding is avoided by debouncing. 

This is ideal for running a development environment with per-file rebuilds: the initial build command churns through files fast enough to keep the concat step suppressed thanks to the debouncing (the debouncing wait time is configurable through `options.debounce`). But after the initial build, single file changes going forward trigger the concat step without requiring the entire glob's worth of files to reprocess.

Files are buffered in memory and concatenated in the order in which they first arrived. The in memory buffer is indexed by absolute file path.