Different migrateClass:, uses atomic name-swap.

It fixes, partly, #382. It is possible to reparent
Set and HashedCollection. But reparenting SequenceableCollection
fails while moving Array.
Merge pull request #385 from herby/atomic-swap-migrate

Different migrateClass:, uses atomic name-swap.