fixed #6

Issue 6の修正コードです。

* 既存のコードは複数のタスクがあるときに全部同時並行で実行し、最初のコンパイルが終わった時点の終了コードを返している(終わってなかったタスクは破棄される？)
* テストのソースが複数ある場合は結果が混じっていた可能性も・・・
* async.forEachSeriesを使ってひとつずつタスクを実行するようにしました(動作は遅くなってしまいますが)。
* 同時オープン数(入力ファイル数)が11を超えた時のパイプのlistenerの警告も解消しています。