remove functionality (now stop before removing)

* pulled in @seanewest's remove functionality.
* pulled in async to help with synchronization.
  * we now stop services before removing them.
  * you can now provide callbacks to commands, so that we can chain together more things see #39.