Make __del__ not fail if teardown happens in another order
test: Use ffi objects of correct type
 tests: Skip all tests depending on GC behavior