New Polynomial and Monomial and performance improvements

This implements a better representation of ```Polynomial``` and ```Monomial``` classes (should be safer and according to benchmarks is also faster).

Apart from that, there are some tweaks to the ```Generator``` (```newton.h```) to make it faster and the internals of ```FreeSemiring``` will now use raw pointers instead of ```shared_ptr```.  Finally we also disable the assertion in ```Release``` mode (```-DNDEBUG```).

To sum up, all of the above changes bring the run-time of ```float-perf-test3.g``` from around 3.7s to 0.4s. :-)

Btw if you have some tests not included in the testsuite, please remember to run them -- there are quite a lot of changes here...