BUG Fixes issue with HasManyList::remove

HasManyList::remove would reset the foreign key on the removed object without bothering to check if that object was even in the list to remove.

This PR will force the list to check against the current getForeignID() value before removal.