Prevent completing foreign futures twice
We've been seeing segfaults related to freeing the oneshot Sender
instance on older mobile phones in Firefox Android. I'm not sure why
this is, but my best guess is that we're calling the complete function
twice, which will attempt to free the same arc reference twice.
My theory on how this happens is we call `handleSuccess` then an
exception is thrown and we also call `handleError`. I haven't been able
to reproduce this on my machine, except when I add manual throw
statements. However, it seems like it's theoretically possible and
maybe on older phones we're running into this. For example the
following lines could throw after invoking the complete callback:
https://github.com/java-native-access/jna/blob/0deb54b46dc04f655e3c1d46e848fd26bf47c09a/src/com/sun/jna/Function.java#L489-L492