High: cl#5055: Improved migration support.

Migrations are now calculated in a way that allows
them to be executed in much more complex situations.
Low: updated pengine regression tests for improved migration support

Why these changes are okay.

Improved migrate logic allows migration in this scenario when it
previously was not about to be calculated.
- bug-1820-1
- bug-1820

Groups are allowed to migrate now
- group-dependants

Clone child instance ordering is preserved even though
the pseudo action ordering has shifted.
- migrate-5.summary
- migrate-both-vms
- migrate-stop-complex
- migrate-stop
- order-serialize-set
- order-serialize

Advisory ordering between a clone and a migrating primitive.
During a migration, the stop action of the migration does not
have advisory ordering enforced.  During a migration, the resource
never actually stops. If this was a manditory ordering, the migration
would not happen.
- migrate-stop_start
- novell-252693-3
- novell-252693

The original migration was allowed incorrectly. The partial
migration target changed during the next calcuation, resulting
in the migration needing to be aborted.  The new migration
logic handles this correctly.
- migrate-partial-4

Order constraints where A then B, If A is migrating, B
does not have to stop anymore.
- migrate-stop-start-complex
- bug-1820-1
Low: new migration logic advanced test cases
Merge pull request #401 from davidvossel/new_migration_logic

Real migration logic