Fix string conatination bug in error handling
Allow looking up the transition between two states
Switch to using markov chain get/set_state methods to build pool game chain
Use a DiscreteUniform variable to determine unknown play orders instead of averaging all possibilities.
Fix error message creation when the argument is not a string
Switch player definition from a single variable to a dictionary of variables.
Factor in foul endings when calculated stats
Improve error reporting for non-stocastic values
Move json to Match logic into it's own file and add testcases
Split up markov steady_state function and optimize _fill_in_diagonal_transistions
Model a full game of 8-ball, including fouls, when simulating games
Small optimization to analyzer._set_state_transition
Optimize markov.set_transition
Remove error handling code that hides underlying error
Optimize markov.set_transition
Optimize markov._fill_in_diagonal_transitions