Clean up session/exception handling in check()

session.getClosed() is an internal Ice method, and not related to sessions as I originally thought.

Ice.ObjectNotExistException is usually thrown, though a SessionTimeoutException is theoretically possible. ProcessI.check() in processor.py catches all exceptions which makes sense since if there is an exception we want to clean up (and if we didn't catch the exception it would trigger a cleanup anyway) so I've done the same here.