Add option for exact prob, default not for speed

Previously we have computed exact probabilities at every stage by using
the `Fraction` class to keep exact precision. Not only does creating
fraction objects incur a cost, but multiplying them together is very
expensive.

We have added an option to use the old behavior of keeping exact
results, however by default we now use floats instead of fractions.
Also, not using fractions allows us to use inexpensive addition instead
of multiplication by internally using log for our likelihood
calculations. Therefore, we use log-likelihood by default internally,
but convert back before returning.

Note: We confirmed there was a performance increase by line profiling
with and without using exact probabilities.