JSONItem replacement

I’m about to update again. This time I’ve made it so that all output is through a MemoryBlock and Ptr instead of an array. The latest numbers are improved, although MBS still blows it away for most operations.

In a compiled app:

JSONItem Create: 12,301
JSONItem_MTC Create: 6,481
JSONMBS Create: 14,421
JSONItem.ToString: 250,623
JSONItem_MTC.ToString: 17,857
JSONMBS.ToString: 3,131
JSONItem.Load: 144,455
JSONItem_MTC.Load: 46,604
JSONMBS.Load: 2,220
JSONItem.Create (big): 27,334
JSONItem_MTC.Create (big): 33,889
JSONMBS.Create (big): 241,615
JSONItem.ToString (big): 4,624,553
JSONItem_MTC.ToString (big): 45,137
... but they don't match
JSONMBS.ToString (big): 4,182
... but it doesn't match JSONItem
JSONItem.Load (big): 328,129
JSONItem_MTC.Load (big): 186,690
JSONMBS.Load (big): 4,642

All times are in microseconds, and there are no decimals.

Again, the “but it doesn’t match” message is because JSONItem encodes some Unicode characters while neither JSONItem_MTC nor JSONMBS does. The output is valid on all cases.