Merge branch '1.7.x' into issue660
add back the test resource which proves that the bug still exist for a particular situation
JSMin: do not minify inside quasi-literals.

Ported from douglascrockford/JSMin@a9b4755
JSMin: ignore byte-order mark.

Ported from douglascrockford/JSMin@f062955
JSMin: do not remove line break before exclamation mark and tilde.

Ported from douglascrockford/JSMin@5ca277e
JSMin: do not remove space between plus (or minus) signs at the start of a line.

Ported from douglascrockford/JSMin@633d992, douglascrockford/JSMin@0d58ea6
and douglascrockford/JSMin@2a943db
JSMin: do not process regexps after operators.

Ported from douglascrockford/JSMin@cec896f and
douglascrockford/JSMin@1bf6ce5
JSMin: do not process regexps after '/' operator.

Ported from douglascrockford/JSMin@0d58ea6
JSMin: handle corner cases on comments after unclosed regexp.

Ported from douglascrockford/JSMin@0d58ea6
Merge pull request #152 from olim7t/issue660

Issue660: port remaining JSMin fixes
fix failing unit test
Merge branch 'issue660' into 2.0.x