refactorint: skipagent のプログラムフローを簡単な形に修正

フラグの数を削減して、ループをモジュール分けして代替表現することで、少し読みやすくした。
また、処理速度重視でmutexを用いずに行っていた処理を、mutexを用いるようい修正。（結果として従来よりも遅くなる）
前の C -> Haskell コンバートが失敗した原因の一つとして、プログラムフローがわけ分からなかったのも関係していたが、
今回のリファクタリングで相当に見通し良く改善されたので、これをベースに再び C -> Haskell を試してみれば、
もしかしたら今度は成功するかもしれない。