issue #3716: PhysicsContact should be inherited from EventCustom, it will simplify the logic of emitting collision events

continue PR #5057