Fix fd leak

ファイルにリダイレクトするコマンドを実行した際に、ファイルの fd が残ります。

例えば、vimshell 上で

```
% cat file >file1
% cat file 2>file2
```

前者 (stdout &rarr; file) で vim に file1 の fd が残ります。
後者 (stderr &rarr; file) ではプロンプトが戻らず、cat がzombieになります。
normal mode の C-c で終了すると vimに file2 の fd と、cat の stderr 向けに開いた pty の fd が残ります。

その他、リダイレクトしない場合でも子プロセス側に stderr の master が開いたままになっています。

```
% sleep 3
```

等の実行で確認できます。