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
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
Implement SecurityGroupIds property for instances

Currently handling SecurityGroups and SecurityGroupIds the same exact
way, that is both are passed directly to nova. If one wishes to pass
a security group by parameter of a group to be created in the template,
it must be in the format of <stackname>.<security group name> since
there's no way to determine the ID beforehand.

Fixes bug #1163991

Change-Id: I26bb43ee89806cefc92ba2d0319340c4cd56ed06
Migrate to pbr.

Fixes bug 1179007

Change-Id: I698d02a2171e43237094c0e5ccc4c2dd47ed722b
Add CONTRIBUTING file.

Change-Id: Idadfda08c42b40411bb38813bd5996515ea5b491
Migrate test base class to testtools.

This is stricter, but also provides plumbing for more advanced things
like fixtures and testscenarios.

Change-Id: I607b50390708ca3caa9799ef0b27007df5045a6c
Merge "Add a convenience method to get instance volumes"
Merge "Handle instance volume attachments with co-routines"
Merge "Detach Volumes from an Instance in parallel"