Topic/z module

This really just adds some general log n repeated sum functions to `Semigroup`, `Monoid`, and `Group`. These are then used in `Semiring` and `Rig`'s pow functions and `Ring`'s fromInt function, as well as in `ZModule`'s timesl function.