Add a concat setting function to determine how to combine inputs

As discussed in issue #2.

This tries to preserve path handling.  In particular, it only uses the relative part of input paths, under appDir (which is really the same as buildDir).  As a result, the concat setting could instead be `Seq[String] => (Seq[String], String)` for simplicity, but I suppose the user may want to get to the file contents as well.
The default behavior is unchanged (except for a tweak to where ".min" is added for files without a ".").  I've tested it in the default case and the everything-to-one case and incremental building still seems to work.
It looks to me like at least with the particular version of source-map that this version of uglify uses they'll always be in the order they're found, so as long as the test source and the uglify dependency version don't change, these shouldn't.  The uglifyOps function does a sort too so at least the sources will always be in the same order.