Fix memory leak of xpmem_thread_group and related objects
Fix memory leak of xpmem_thread_group and related objects

Memory leak occurs when close(2) is called explicitly from
a user application due to the following reason:
close(2) deletes tg from tg_hashtable in xpmem_flush() and after that
xpmem_mmu_release() is unable to find the tg from the list and
fails to call xpmem_teardown().

tg can be referenced with a mmu_notifier object in xpmem_mmu_release()
instead of searching for the tg from the list.

hjelmn/xpmem,hjelmn/xpmem