Convert Resource to separate action/status

Next step in decoupling action/status

This adjusts the Resource DB columns, model and class to be consistent
with Event, and split action/status.  This also modifies the both APIs
to join the action/status to avoid changing the API (we can't change
the CFN one anyway and it's desirable to avoid breaking compatibility
with the ReST API, or needing a version bump for this simple change)

Change-Id: I02b56eb14045a058e67b9764d386530d555c339e
engine : abstract state-transition logic

Refactor to abstract the handle_create/check_create_complete
logic, so it can be reused without lots of duplication for
other action transitions

Prompted by review comments from:
https://review.openstack.org/#/c/31982/2/heat/engine/resource.py
related to blueprint: stack-suspend-resume

Change-Id: Idb18913ef6ff700b63d5ec6d340d2353fc2294b7
Add InstanceId property to EIP resource

This also changes the InstanceId property for an EIPAssociation
to not be required, which was necessary for testing and is inline
with AWS documentation.

Change-Id: I49dd506309fe6a38df6727bca7f6bbebd45fba3f
Fixes: bug #1164864
Merge "Convert Resource to separate action/status"
Merge "engine : abstract state-transition logic"
Merge "Add InstanceId property to EIP resource"
Standardise resource names in Invalid Attribute errors

These should always refer to the resource name in the template (i.e.
logical resource name), and never the physcial resource name (since these
errors necessarily occur during validation, before any physical resource is
created).

Change-Id: I6cf6625cf32a90acb27adc6348695c086dc5e119
Return None for physical resource name during validation

During template validation, the resources have not been stored in the
database. Therefore any resources that return self.physical_resource_name()
in either FnGetRef() or FnGetAtt() would cause assertions whenever either
of those functions were called during validation. Instead, return None from
physical_resource_name() in this phase, as we do for other data that is not
available yet during validation.

Fixes bug #1191931

Change-Id: I1a5b17557ae1ca2600fb930e74eb5248c82e0326
autoscaling fix LoadBalancer reload static resolve

Since https://review.openstack.org/#/c/31083/ we're using the
Resource.update() method to update the LoadBalancer, which requires
the resource snippet to be statically resolved (as is done in
parser.Stack for stack updates)

Fixes bug #1191705

Change-Id: Id2017a912472ddb48245682c5b6392cbcb9e4c60
Merge branch 'master' into bp-dev/rackspace-cloud-servers-provider