vlc_objects: expose wrappers around vlc_object_create/delete
Expose wrappers around vlc_object_create/delete using placement new and manual call to the destructor. It ensures that C++ objects are correctly handled when creating C++ objects through vlc_object_create<>(), and that their destructors are correctly called when the (C++) object is destroyed.
A test checks that:
- It correctly calls the constructor and destructor
- It correctly init the object without overwritting the vlc_object
I'm still not 100% sure of how the vlc_object is not overwritten though.
Necessary for MR !4703 (merged)