faster minpoly using composed sum

In ``minpoly`` the composed sum is used instead of the resultant; in examples taking a lot of time the former
is often much faster than the latter; for instance in  ``minpoly(sum(sin(i*pi/13) for i in range(13)), x)``
on my computer ``compose_add`` takes 0.17s, ``resultant`` takes 8.8s.

``compose_add`` is implemented using some functions to manipulate power series, introduced in ``ring_series.py``,
taken from PR #609.