Check resources are in expected states

Allow resource to check whether it is in an expected state and update
status and action accordingly.

This adds a check action to the stack that will perform checks in all
their resources and nested resources as well.  If a resource doesn't
have a handle_check() method, check for that resource will just pass.

If any resource at the end of a Stack.check() doesn't have a
handle_check() method, then a message will be added to the status_reason
of both the resource and the stack saying that CHECK is not (fully)
supported.  This allows for the other resources to implement their own
checks for their expected states.

Co-Authored-By: Richard Lee <rblee88@gmail.com>
Implements: blueprint stack-check (partial)
Change-Id: I18985476696faeaa47149c233a067f9494c2effa
Add stack-check action to the API

Add CHECK to the list of accepted stack actions.

Co-Authored-By: Richard Lee <rblee88@gmail.com>
Implements: blueprint stack-check (partial)
Change-Id: I38265b672090f5fcc34413cc4d8c086015af869c
Merge "Check resources are in expected states"
Merge "Add stack-check action to the API"