Implement improved IPython notebook rendering support

This adds improved rendering support in IPython notebooks for mixed
strategy and behavior profiles, and for Rational numbers.

In the case of mixed profiles, display is now done as lists nested by
player and information set.

For rational numbers, a new class Rational is implemented, which derives
from the Python standard library fractions.Fraction and provides the
extra instrumentation to display graphically as fractions in LaTeX.