Fix cleanup multi-registration.

Ensures that for each resource to be cleaned up, only a single cleanup
handler can be registered. Multiple calls to e.g. cleanupHandle() will
no longer register multiple handlers.

The return type of getCleanables() is changed from List to Collection.