engine : Fix ResourceFailure exception issues

Fix some issues spotted in https://review.openstack.org/#/c/29543
These errors were spotted after the patch was merged, the
ResourceFailure exception takes an Exception not string argument

Change-Id: I72045ecf147c66a0a1cf1ef5df7fb3be8100384d
Rename requires files to standard names

From bug report:
Rename tools/pip-requires to requirements.txt and tools/test-requires
to test-requirements.txt. These are standard files and tools in the
general world are growing intelligence about them.

Change-Id: Ie0bdb4908f45e47db43e84cd0c5fdc5263c035f4
Fixes: Bug #1179008
Make volume attachment a co-routine

Change-Id: Iad1ac0578470e4c2f997257560d62f8cb2d7ee35
Make volume detachment a co-routine

Change-Id: I799f891010fb75c80afd30ded761aa2b3b632394
Merge "Make volume attachment a co-routine"
Merge "engine : Fix ResourceFailure exception issues"
Merge "Make volume detachment a co-routine"
Move VolumeAttachment polling to check_create_complete()

Change-Id: I2e2fe3784b8cf79e3ccacd3451e06b75433fdd5b
engine : replace UPDATE_REPLACE with ResourceReplace exception

Replace the handle_update returned value with a new ResourceReplace
exception, which allows the replacement logic in resource.py and
parser.py to be cleaner

Change-Id: If652d031e8baeb8f4c6015e5ed2d0e5bb25f0fc6
heat tests : add coverage for instance UpdateReplace

Add some tests which test the UpdateReplace path for Instance

Change-Id: Ib9c35498c3ab2811fcd73aac8159315cb6251004
Instance resource remove unreachable/redundant Metadata update check

update_template_diff already throws resource.UpdateReplace if the
json_snippet contains changes other than to Metadata, so the else
here is unreachable and redundant

Change-Id: I9f0ad88d0b6fa65cafd5b2843a38913fa843a3ac
engine : move update_template_diff functions into Resource

Move the update_template_diff and update_template_diff_properties
functions into resource.Resource - since they now raise
resource.UpdateReplace we can avoid ever calling handle_update if
the resource update will result in replacement

Note a further cleanup will probably be to combine the two diff
functions into one recursive diff, which will further simplify this

Change-Id: I839f0c4448a2d869f35e0a4f19d17f31c5c6f9af
Add a convenience method to get instance volumes

Change-Id: If22cd9245b043f35386ad3c24d46a41b0b8c2c86
Handle instance volume attachments with co-routines

Don't sit in a loop when attaching volumes to instances, use a task that
yields control and allows them to run in parallel - and, in future, in
parallel with other resources being created.

Change-Id: I4653baa87b09a9fb6c2c16b51218f4ea2f2ae6dd
Detach Volumes from an Instance in parallel

Use a PollingTaskGroup to ensure that if there are multiple Volumes
attached to an Instance they are detached in parallel rather than serially.

Change-Id: Ice399ae495af75558f2f8b1b1dc330d0b556a269
Merge "Rename requires files to standard names"
Add a separate Template class for the HOT format

An alternative to https://review.openstack.org/30405

Change-Id: Iea3422b1219a1ddf1b12ac2d156279165eb28c07
Change SecurityGroups to be passed directly to nova

This changes SecurityGroups to return the complete name
of a resource (stack.name).

Change-Id: I945f1213b3ddcb5550e7b4ed3d982d4ee7c4e912
Make IDs for resources unique to ensure tests pass

There were some duplicated IDs being used, specifically with
security groups.

Change-Id: Icf741e42d9dcca922f8944fad546d9db040612ba
Use UUIDs for Quantum security groups

Quantum security groups are referenced by ID and supports duplicate
names, so having the ID available helps to avoid searching for it
when needed.

Change-Id: Idff9245b9848083029dd47fb2253a64b0c5de523