TTY detection

I rewrote @egonSchiele's tty fix. Thanks for the original pull request in #4!

I added an `enforced_colors` option to bypass the tty check during tests.

I dislike my is_tty method, somebody with better ruby skills is welcome to rewrite it.