Fix for Singular procs returning an already wrapped ring.

Instead of wrapping it again and subsequently crashing, we now
correctly return the original wrapper.
Fix another crash when returning a ring.

We set currRingHdl but neglected to also set currRing, which caused
iiMake_proc to reset currRingHdl, and hence we crashed later on
when invoking killhdl.
Add support for Singular procs with multiple return values
Add various tests for Singular interpreter procs

In particular, test multiple return values, and also what happens
if a ring is returned: Once we return rings that we passed in,
and once we let the proc create a new ring from scratch.