Allow pool game chains to be analyzed symbolically and allow
constructing games with fewer than 8 balls per team
Make match evaluation based on Python classes to enable easily
working with multiple match evaluation strategies