Linear-drop obligation wrapper. ManuallyDrop::new(t, regions)consumes the State-side obligation entry for t.key() (via
T::consume_obligation) and wraps the value. The wrapper carries only
the value — no embedded obligation — and can be silently dropped
affinely; the linear-drop guarantee comes from the State-side ledger.