Add RiemannSurfacePath constructor using cycles.

A user can now provide a cycle (output from homology()) as input to
RiemannSurfacePath and the segements will be computed / corresponding
path will be created.
RiemannMatrix.period_matrix() works.

RiemannMatirx.period_matrix() produces Riemann matrices for the curves
f2 and f10 with genera two and three, respectively. The fix had to do
with properly counting rotations about branch points going in the
opposite direction.