A simple implementation of the OwnedDisposable, where actual disposal is passed in via the constructor.
new(dispose:() ‑> Void)
read onlydisposed:Bool
dispose():Void
ondispose(d:() ‑> Void):Void