Get rid of unnecessary allocations in PolyDense#*.

This was using Array.fill which allocates a thunk, and a builder.
Switching over to just using new Array & cfor has a nice bump in the
benchmarks for small polynomials (<= 4).
Add some documentation to the polynomial methods.
Fix PolySparse evaluation.

A few bugs here! Things are working correctly now.