Convert WRAP_POINTER and UNWRAP_POINTER macros to functions
Simplified RESET_POINTER macro and documented it (and SET_POINTER)
Allow parameters in thrown exceptions
Simplify direct buffer validation
Rename NOT_NULL to VALIDATE_NOT_NULL and document it.
Rename NOT_SET to VALIDATE_POINTER_NOT_SET and document it.