Support pretty-printing js_fragment build output

Usage:
./go //javascript/atoms/fragments:clear:firefox pretty_print=true
./go //javascript/atoms/fragments:clear:firefox \
    minify=false pretty_print=true
NO-OP: Wrap existing license headers, unchanged, in @license JsDoc block.
Closure compiler keeps such blocks unchanged, with line ends preserved, in the output.
That makes it harder for the users to violate the license by not including the notice
with build artifacts.

I am also going to add Software Freedom Conservancy+Apache2 headers like these
to all JS files that do not have *any* license header (which is actually useful,
unlike this). I am not going to *change* any license notices, obviously.
Making keyboard interactions to retain selection. Fixes issue 2779