refactoring + cancelling previous run

* ProcessManager.state()という便利関数がujihisaさんによって導入されたので、それを用いてrefactoringしました。行数がだいぶ減りました。
* これまでrunner/process_managerでrunしたものはキャンセルする手段がありませんでした (再実行しても前回の処理が終わるまで待たされていました)。 このpullreqで、前回のrunをキャンセルするようになりました。
* どちらも手元で検証済みです

まとめ: 便利