Implement more type conversions

This pull request is work in progress, DO NOT MERGE!

We currently only really support polynomials and rings in characteristic 0 when it comes to conversion (and even that is lacking). There is not yet much support for working over finite fields, not even over prime fields.

As long as one only works with Singular objects, and never needs to convert them back to GAP objects, that may be fine. But on the long run, we really need to provide conversion methods for as many of these as possible; at least for all finite fields and for Z/mZ.

Back in January, I picked Hans' brain on this, and collected sufficient information to get started on converting Singular "number" objects (i.e. coefficients). Sadly, beyond taking some notes and some code skeletons, I did not get around to actually implementing anything.

I put my notes for that into this branch, in the hope that I or somebody else can pick up this work later on. (Of course you'll then want to start a new branch or rebase this one, instead of keeping the nonsense commit).

Beyond coefficient conversions, we are also in dire need of functions which easily convert between GAP polynomials and Singular polynomials (clearly, in general this requires coefficient conversions to work, but even for rational coefficients the situation is not great). I'll add some incomplete prototypes of that, too.