Change colour output behaviour

Currently, `--colour` accepts only an on/off mode only, different from
the way many Unix tools behave (on/off/auto). As far as I understand,
this is because on Windows, the terminal is not ANSI-capable, but
still, we can do better, at least under Unix.

The patch changes the type of parameter to on/off/auto, where auto
means on if standard output is a terminal. To keep compatibility with
Windows, the default value of the flag is different: off for Windows,
auto for everything else. This is done via `System.Info.os`, whose
exact value depends on the compiler, so the Windows detection is
GHC-specific.

Tested manually under Linux. I have no idea what happens if
`--color=auto` or on is specified on Windows (raw control chars?).
Merge pull request #72 from iustin/colours

Change colour output behaviour