MarkovChains now generate output using the Next() function

Markov Chains will now generate output and change their state according
to the probabilities given in their setup when the Next() method is
called on the chain.