[RUNTIME] Remove Extension VTable in favor of Unified Object system. (#4578)
Before the unified object protocol, we support pass
additional extension objects around by declaring a type as an extension type.
The old extension mechanism requires the types to register their
constructor and deleter to a VTable and does not enjoy the benefit of the
self-contained deletion property of the new Object system.
This PR upgrades the extension example to make use of the new object system
and removed the old Extension VTable.
Note that the register_extension funtion in the python side continues to work
when the passed argument does not require explicit container copy/deletion,
which covers the current usecases of the extension mechanism.