Treat templates as javascript for sourcemap syntax

resolves #638
Better error code test
Listen for finish event for successful copy instead of close
Simplify err handler shit
Prevent double calls

* No longer necessary to clobber callback on finish
* copyCounter values make more sense now
Special handling for EBUSY

Now it works no matter what the fuck I throw at it
Oops that shouldn't be there anymore
process.nextTick FTW

`process.nextTick copyQueue.shift()`
27 Jul 04:05:11 - info: copied 2738 files in 56381ms
27 Jul 04:18:14 - info: copied 1579 files in 2697ms
27 Jul 04:23:30 - info: copied 1579 files in 2585ms
27 Jul 04:49:18 - info: copied 4501 files in 318125ms

`setImmediate copyQueue.shift()`
27 Jul 04:08:16 - info: copied 2738 files in 62688ms
27 Jul 04:16:18 - info: copied 1579 files in 3249ms
27 Jul 04:24:12 - info: copied 1579 files in 3651ms
27 Jul 04:55:27 - info: copied 4501 files in 310449ms

`(copyQueue.shift())()`
27 Jul 04:10:26 - info: copied 2738 files in 61596ms
27 Jul 04:17:27 - info: copied 1579 files in 2564ms
27 Jul 04:22:10 - info: copied 1579 files in 3261ms
27 Jul 04:41:28 - info: copied 4501 files in 342951ms

`setTimeout copyQueue.shift(), 0`
27 Jul 04:12:34 - info: copied 2738 files in 60466ms
27 Jul 04:19:39 - info: copied 1579 files in 12030ms
27 Jul 04:24:58 - info: copied 1579 files in 13887ms
Add semicolons between concatenated javascripts
Fix missing quotes
Merge remote-tracking branch 'upstream/master'