Making RegisterListener private

RegisterListener is known as Cleanup in the Java implementation. I
believe it's purpose was to prevent IListeners from being garbage
collected.

Instead of having callers being able to register themselves, the Listen
method adds the listener automatically, so no extra call to register the
listener is required.