Refactor Instance#_check_active

Currently, Instance#_check_active both checks whether the server is
active and attaches the volume.  This commit separates that logic.

blueprint stack-check
Change-Id: I7fe805efc089535667e8d3840d79ade07430040c
Add way to group exceptions in DependencyTaskGroup

DependencyTaskGroup currently aborts execution if any exceptions are
raised.  This commit provides a way of aggregating all the exceptions
during execution and re-raising them only at the end.

blueprint stack-check

Change-Id: I6af314cc112f9286c8b38739870c6fa8b4ba9b5a
Check resources are in expected states

This is the first step towards the blueprint stack-convergence.

Issue an update call with an additional flag (update_type=check) to
check that all resources are in their expected states.  If they are, the
call will complete with UPDATE_COMPLETE, otherwise resources will be
marked as UPDATE_FAILED with the corresponding reason.

blueprint stack-check
Change-Id: I4e39bfe6a3dca04305563844d5922da7e0bb67b3