Split Destroy/Terminate actors. Add problem checking.

I suggest squashing the commits since I know that they are slightly disorganized, and the commit messages don't always describe what's been done. Main changes are obviously:

* Separate responsibilities into Terminate and Destroy actors.
* Create `find_problems` actor method to detect issues before execution.
These two lines are blocking calls...this logic ness to be wrapped into the API package, or at least wrapped here in a thread.