A safe version of ManuallyDrop with various features and options to track undefined behavior when working with ManuallyDrop.
`ManuallyDrop` "owned field" pattern with no `unsafe`, no `.unwrap()`s, no macros