Hpcc 11922 new json support

Added JSON support 
Tony's IXmlWriterExt changes cherry-picked
 - https://github.com/afishbeck/HPCC-Platform/commit/6d217720cf470d9f7773a8193c46f56bf0bbd439
 - from  branch afishbeck:jsonFileWrite

Integrated IXmlWriterExt changes
Signed-off-by: rpastrana <rodrigo.pastrana@lexisnexis.com>
Unrelated to Tony's question, but there is an unusual mixture of name conventions here.  In most of the core code (I don't know about esp), members do not have any prefixes or suffixes.  Sometimes parameters to constructors are prefixed with an underscore if they are used to initialize member variables.