Add IGNORE_BACKREF_PROC_READ_NOT syntax option

Setting this enables the JavaScript behavior of ignoring any
backreferences to negative lookahead captures outside of the negative
lookahead itself.

In otherwords, in a regular expression like "(.*?)a(?!(a+)b\2c)\2(.*)"
the second backreference to "\2", outside of the ?! group, is ignored.
Move the JavaScript syntax from DynJS to Joni
Modify Analyser to respect the STRICT_CHECK_BACKREF syntax option
Add OP2_ESC_IDENTITY syntax option

JavaScript allows what it calls an identity escape, where an escaped
character falls back to just returning itself if not other escape
sequence matches.