Use ANSI escapes to output to Cygwin-based terminals

Cygwin detects ttys by looking at the name of the pipe the parent
process created for it.  It also uses the NtQueryObject API to get the
pipe name.

This enables terse output with mintty avoids stripping ANSI escape codes
from the output of subprocesses like clang.

This does *not* enable the ellipsis insertion code because that code
doesn't compile on Windows.