#3109 introduced a new bivariate division polynomial for elliptic curves, only implemented for curves in short Weierstrass form, and also very useful functions for dividing points (for arbitrary curves).
In reviewing #3377 I wanted to use the division_points() function for curvesw defined over number fields and ran into problems. This led me to reconsider the existing division polynomial code, and this is the result. I removed the commenting-out # signs from a perfectly good set of three functions pseudo_division_polynomial(), multiple_x_numerator() and multiple_x_denominator(). I rewrote full_division_polynomial() to use these, making it very much simpler and apply to all curves, not just those in short W. form. I also rewrote division_points(), simplifying it.
I'll shortly post a patch for all this. In the patch you will find some rather long-winded comments which explain very precisely what the relation is between these functions. If approved, I'll make use of this and get back to working on #3377.