separate logic of CoinFlip class

The CoinFlip class had to much code in #play, so I turn that logic into small methods and a new ConsoleOutput class.

This new approach is easier to read and modify, also it offers changing the kind of output we got from the game passing
an object that implements #generate(turns) to an instance of the class.

There's console output by default, made possible through the ConsoleOutput class, but we can easily define another
class with a #generate method, pass it to the constructor of CoinFlip object and have a different kind of output, while
changing nothing in the CoinFlip class.