Add option to use color codes in non-tty contexts

This adds the `--color=<when>` option to the command to specify when the output should be colorized, where `<when>` is either `auto`, `always` or `never`.

Fixes #325.
I know this is where the check was before, but a while ago I split reporters out so they can be swapped out. 3rd party reporters can be used. I'd like to see this logic moved into the core so all reporters can take advantage of it.