Improve hackings docstring detection

Previously: def foo():\n    a = '''This is not a docstring'''
would be counted as a docstring even though it isn't.

Fix this and add docstring tests.

Fix bug 1100912

Change-Id: Id4d4aa382713eea340720e166e418262ba68eaaf
Make compute manager revert crashed migrations on init_host()

This should provide a path to cleanup partial migrations by reverting
them back to the original state instead of leaving them in limbo. Note
that libvirt needs a change to make this work, in the case where the
unconfirmed instance's directory is still present and needs to be
removed before the rollback.

The libvirt, xenapi and powervm drivers are modified here, and tests
are added to confirm their compliance with the proper behavior.

Addresses bug 1131588

Change-Id: I85bc0f6e9cda10aa85328199d107a3ff6e240b96
Merge "Improve hackings docstring detection"
Merge "Make compute manager revert crashed migrations on init_host()"
Merge remote-tracking branch 'm_src_repo/master' into build-temp