HPCC-8435 Implement JSON Pull Parser and PTree creation

Parsing and creating PTrees from JSON is needed for several
upcoming JSON integration items.  This implements a PullReader
and a BufferReader, as well as createPTreeFromJSON Functions.

This implementation emulates the style and practice of the current
XML parsers.  It also sticks to the existing parser interfaces
completely future enhancements could be made that would improve those
interfaces to benefit more from JSON data type knowledge.  Especially
to improve symmetry between building a PTree and serializing back
to JSON.

While the parsers support full JSON naming syntax, JSON supports
object names that cannot currently be supported as property trees.
Creating a property tree from such JSON will throw a PTree exception.

The general philosophy for the pull parser has been that each call to
IPulXMLReader::next() will result in one event (or error).  Further
action after an event is minimized.  The event handler should be able
to abort immediately without further events or syntax based errors.

Signed-off-by: Anthony Fishbeck <Anthony.Fishbeck@lexisnexis.com>
HPCC-8435 Common up JSON and XML Pull Parser code

Signed-off-by: Anthony Fishbeck <Anthony.Fishbeck@lexisnexis.com>
HPCC-8435 PTree Reader interface names should not reference XML

Signed-off-by: Anthony Fishbeck <Anthony.Fishbeck@lexisnexis.com>
HPCC-8924 Prevent simple recursive computerTypes causing stack faults

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
HPCC-8910 Rename EclWatch Copy URL menu to View URL

The EclWatch Copy URL icon was used to copy current EclWatch URL to
clipboard. Since most of browsers does not allow JavaScript to
access clipboard data for security and privacy reasons, the icon is
used to display the URL to a new window and a user may copy the URL
from that window. This fix changes the popup text of the icon from
'Copy URL' to 'View URL'. This fix also changes the window size
from 400 x 50 to 800 x 500 for a better display.

Signed-off-by: Kevin Wang <kevin.wang@lexisnexis.com>
HPCC-8897 Pass cacheHint to use paged cache when querying workunits

Workunit/Dali implements a paged caching mechanism for sorted workunits
and dfu workunit results. To use the caching mechanism, this fix passes
cacheHint as a parameter of getWorkunitSorted() when paging through
workunits/dfu workunits.

Signed-off-by: Kevin Wang <kevin.wang@lexisnexis.com>
EPE-17 Update EPE Docs for Beta

Signed-off-by: JamesDeFabia <James.Defabia@LexisNexis.com>
HPCC-8435 Clean up hierarchy of PTreeReader init and reset methods

Signed-off-by: Anthony Fishbeck <Anthony.Fishbeck@lexisnexis.com>
Merge pull request #4063 from ghalliday/issue8924

HPCC-8924 Prevent simple recursive computerTypes causing stack faults

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Merge pull request #4075 from JamesDeFabia/UpdateEclipseBetaDocsEPE017

EPE-17 Update EPE Docs for Beta

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Merge pull request #4070 from richardkchapman/roxie-lazy-smart

HPCC-8927 Lazy open should default to smart mode

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
Merge pull request #4065 from wangkx/h8910

HPCC-8910 Rename EclWatch Copy URL menu to View URL

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Merge pull request #4064 from richardkchapman/roxie-stats

HPCC-8828 Add new metrics to Roxie

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
EPE-17 Update EPE Docs for Beta

Signed-off-by: JamesDeFabia <James.Defabia@LexisNexis.com>
Merge pull request #4069 from wangkx/h8897

HPCC-8897 Pass cacheHint to use paged cache when querying workunits

Reviewed-By: Gavin Halliday <gavin.halliday@lexisnexis.com>
Reviewed-By: Jake Smith <jake.smith@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Community Edition 3.10.4-1 Gold

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Merge remote-tracking branch 'origin/candidate-3.10.4' into candidate-3.10.x

Conflicts:
	version.cmake

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Merge remote-tracking branch 'origin/candidate-3.10.x'

Conflicts:
	esp/services/ws_fs/ws_fsService.cpp
	esp/services/ws_workunits/ws_workunitsService.cpp

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Merge pull request #3820 from afishbeck/json_ptree

HPCC-8435 Implement JSON Pull Parser and PTree creation

Reviewed-By: Jake Smith <jake.smith@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
HPCC-8925 XMLDECODE decodes & to nothing

Various issues with the way XMLDECODE (and xml read) handle invalid escape
sequences.

1. XMLDECODE should be leave invalid escape sequences unchanged. At present
the unicode version strips them (sometimes) and the ascii version throws an
exception
2. Potential reads off the end of the input string in both cases
3. Incorrectly accepting upper-case variants of escape sequences
4. Unicode version was missing &nbsp. Strictly speaking that is an HTML escape
sequence not an XML one, but since the ascii version accepted it the unicode
one should too.

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>