CRM-20858: Call moveContactBelongings Only Once
moveContactBelongings() was bing called twice, first to move selected related
tables, and the second to move all other tables that reference contacts table.
Refactored moveContactBelongings() method so that it can be called only once,
by calculating in one go the tables that have to be taken into account when
merging, according to what has been selected to move. Basically, it searches
for all tables related to the contact, removes related tables, and then
includes only those related tables selected to be merged.