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