Reset migrating task state for MigrationError exceptions

Create an exception type for pre-check errors and add it to the list
of exceptions for which instance task state is reset to ACTIVE to
avoid cases where an instance get stuck in MIGRATING state.

Convert existing instances of raise MigrationError in scheduler and
driver pre-checks to have them raise the new MigrationPreCheckError
exception instead.

In addition, also make sure that expected exceptions are passed over
RPC silently.

Resolves bug 1171526.

Conflicts:
	nova/scheduler/filter_scheduler.py
	nova/scheduler/manager.py
	nova/virt/xenapi/vmops.py

Change-Id: I00fa0962e555f895dd98861684ec7767fed3b37b
(cherry picked from commit 9eb3dc7ed44d99652a17238724842e3067d46120)
Merge "Reset migrating task state for MigrationError exceptions" into stable/grizzly
Merge branch 'stable/grizzly' of https://github.com/openstack/nova into grizzly/stable