Going forward, the following methods will require a mem_task to be
provided: Clone, CreateArray, CreateObject, Parse, Stringify.
For JsonArray, append/insert/prepend will take arguments in the form
((index,) value, type). A JsonItem will automatically be created which
encapsulates this value and type. If type is not specified, the
following will be done to determine the type:
- Cast value to JsonElement* and check if the signature matches. If it
does, assign type as value(JsonElement*)->type; or
- If value > 0x1000, assign type as JSON_STRING; or
- Otherwise, assign type as JSON_BOOLEAN.