reigned in too eager migration algorithm

the migration algorithm allows options that are identically defined in multiple namespaces to be 'migrated' to a lower level in the namespace hierarchy.  This means that they only have to be defined once within a configuration file rather than in every namespace.  The original algorithm was too lenient in deciding what options are candidates for migration.

This changes tightens up the decision making process. Given this scenario:

  x.y.m == 17
  a.b.m == 17
  k.l.m == 22

the old algorithm would allow the migration of 'm' to a lower level even though the values were different in different namespaces.  The new algorithm will not allow this migration - all the definitions must be identical for migration to happen.