Made sure that only non-null pointers are freed when Util.FreeSerializePointer is called.
Added ability for non-BPS internal classes to register serialized pointers for final cleanup.
Implemented BPSEvent payload support.
Added public constructors for BPSEvent.