Prefix all defines in hl.h with `HL_`
The majority of macros in hl.h already follow this rule, however, there are a few that don't, in particular type names for ffi:
https://github.com/HaxeFoundation/hashlink/blob/fbfedd8097d3a2c4869154251f4a160d13a23ac3/src/hl.h#L824-L848
In C, identifiers beginning with an underscore and an uppercase letter are reserved, so it is not a good idea to be using these. This is why the #undef hacks are needed for _NULL, _VOID and _STRING, and why #undef _GUID is required in some cases after including hl.h: #748 #804.
It would be good to gradually transition to names that aren't reserved and preferably names prefixed with HL_. This can be done by providing both defines for now and marking the current ones as deprecated, and adding a flag to turn off the old definitions.
This not only avoids the use of reserved identifiers, but it also makes it easier for the hlc generator to check haxe identifier clashes with hl.h macros. It can simply assume that anything starting with HL_ needs to be mangled, rather than having to be aware of all the types defined by hl.h. Related issue: https://github.com/HaxeFoundation/haxe/issues/11419
(As a sidenote, the type name macros are only required for building hdlls, and not in hl vm code or in hlc programs, so it might be worth considering moving these to a separate hl_ffi.h header.)