HttpJsNorm class serves as a script Normalizer, and currently has two implementations:
the Legacy Normalizer and the Enhanced Normalizer.

In NHI, there are two JSNorm extensions:
 * HttpInlineJSNorm, processes content of HTML script tags.
 * HttpExternalJSNorm, processes payload with JavaScript MIME type.

Normalization context is per transaction. It is created once js_data calls for normalized JS data,
and is deleted once transaction ends. Partial inspections feed data incrementally to JS Normalizer,
but the output is accumulated and concatenated in the right way, presenting more comprehensive block
of data to Detection.

During message body analysis the Enhanced Normalizer does one of the following:
1. If Content-Type says its an external script then Normalizer processes the
   whole message body as a script text.
2. If it is an HTML-page, Normalizer searches for an opening tag and processes
   subsequent bytes in a stream mode, until it finds a closing tag.
   It proceeds and scans the entire message body for inline scripts.

Also, js_data IPS option's buffer is a part of NHI processing in order to start the normalization.

Enhanced Normalizer supports scripts over multiple PDUs.
So, if the script is not ended, Normalizer's context is saved in HttpFlowData.
The script continuation will be processed with the saved context.

In order to support Script Detection feature for inline scripts, Normalizer ensures
that after reaching the script end (legitimate closing tag or bad token),
it falls back to an initial state, so that the next script can be processed by the same context.
