コンソール処理の問題を修正

・stdin/stdout/stderr が未接続な場合にかぎり AttachConsole を試みる
・ログ出力は stderr が有効なら AttachConsole したかどうかに関わらず行う

あと freopen の使い方がなんかおかしかったので直してあります(帰ってくるのは古いのではないです。あと再割り当てできません)

_fileno() の判定は、本来ならそれだけでOKなのですが、VS2012 のランタイムにバグがあって正常に判定できないので、ハンドルも確認してます。