fix leak: Base.__del__ causes GC-uncollectable circles.

This in effect means __del__ will not be called. Let's drop it. API users know
to use context manager/call close() and so does main.py.