Iteration without symbolic delta

The main feature here is the implementation of Newton iteration without using symbolic delta (i.e., computing it concretely in each iteration).  In my testing it seems to produce the same results as the old one and the performance difference is negligible.  But I haven't made it the default yet -- if you have time do take a quick look at it.

I've also changed how we print ```FreeSemiring``` (i.e., use distributivity) -- let me know if you like it.  The main reason for it was to make it easier to compare output from tests...

Btw I've also cleanup up float semiring and moved everything to the header -- the implementation is really small and it gives the compiler a way to inline some of the methods.