Use repr for msg in bad normalization exception.
Add classes for sample spaces.
Allow sorting and indexing into sample spaces.
Use a BaseSampleSpace class.
Allow repeat keyword to custom product functions.
Update pruned/expanded funcs for sample space classes.
Allow 0-length Cartesian products.
Speed up method for finding sigma algebra atoms.
Docstring adjust.
Import pruned/expanded_samplespace functions into top level.
Use sample space classes in distributions.

Simplify reordering.
Fix a few other tests.
Preserve sample space during coalescing.
Use np.prod instead of reduce (fix for Py 3.2)
range() -> list(range())  for Python 3
Two more Python 3 fixes
Update mixed-alphabet unit test.
Add note about how dit doesn't support mixed-type alphabets.