Fix issue with html.replace mangling '$&'

The following JS code fails when inlined:

e&$&&(console.log("Hello world"));
  ^^ This $& is a special flag for String.replace, which means "Inserts the matched substring."
     Source:
         https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter

This bug was discovered by using gulp-inline-source, which uses inline-source
and uglify.js.
The original code was something like

     if (variable & mask) {
         doSomething()
     }

Uglify.js, automatically called from gulp-inline-source. optimized that as
follows:

     e&$&&(doSomething());

'variable' was shortened to 'e', 'mask' shortened to '$', and the 'if'
replaced with '&&'. The final inlined source replaced the $& with the
original <script> tags, breaking the output.

The solution is to have the second parameter of String.replace be
a function, which does not do the $& (and other) substitutions.