[cpp] Add unsafeGet, unsafeSet and memcmp to cpp.NativeArray.  Add optimised cpp versions for haxe.io.Bytes
attempt to make UInt a core-type on all targets
always use the empty UInt for documentation generation
use real type for abstract catches, then change variable type to concrete one (closes #2859)
do not generate @:enum abstracts if they consist of @:enum fields (closes #2858)
Revert "do not generate @:enum abstracts if they consist of @:enum fields (closes #2858)"

This reverts commit 2fa5220f7dc7cf278875e7eabf757dfd217dfbdd.
resolved #2855.

$hx_exports initializers are now exploded, with each unique field
assigned with || {} to avoid overwriting any potential existing value.

For -D shallow_expose, the outside declared $hx_exports is similarly
exploded.
Removed needless repetition of string concatenation for $hx_exports
[cpp] Add optimized version of Vector.  Add cpp.NativeArray.setSize
[cpp] Make fake this pointers smart pointers in local blocks.
[cpp] Add STACK_THIS to constructor (thanks zobo)
[cpp] Merge setEventNotificationHandler signature fix - thanks zobo
[cpp] Put spaces inside angle brackets to please gcc
prioritize @:to/@:from over to/from for abstract casts
revert UInt changes
remap `this` after retrieving it from the this_stack because we might be in a closure
add pretty print to JsonPrinter
JsonPrinter do not add pretty newlines for empty objects and arrays
Mention json pretty-printing in CHANGES.txt
[cs] Add proper arguments when add_/remove_ are not events