Check that all context managed objects are properly closed
Ensure all of our context managed objects have a __del__ that asserts
that the instance has been properly closed so that we'll be more
likely to notice related oversights.
This will only work in cases where __del__ is called before shutdown,
but that should normally be the case for cpython.
Signed-off-by: Rob Browning <rlb@defaultvalue.org> Tested-by: Rob Browning <rlb@defaultvalue.org>