Attempt to fix SAMP testing issues

(Related to #2064)

This pull request is an attempt to make the SAMP tests deterministic. To start with, I noticed issues with garbage collection in Python 3 due to the presence of the ``__del__`` method (which are unneeded).

However, I still see the garbage collection issues when running in parallel - not sure what is going on there. Maybe @mdboom or @embray would have ideas?

I also see a lot of warnings like:

```
sys:1: ResourceWarning: unclosed <socket.socket object, fd=21, family=2, type=1, proto=0>
```

Though I haven't quite figured out yet what is going on there.

As far as the non-deterministic tests go, I wonder whether it has something to do with the use of a pool of servers as opposed to a single server. If we still see the failures here I'll try forcing a pool size of 1.