Mover C++ code related to number conversion to separate source file
Extend SI_ToGAP to support intvec and (big)intmat
Reduce memory overhead of wrappers for ring dependant objects

Got rid of the pointer to the GAP wrapper of the ring; we only retain
the C++ pointer to the Singular ring object, from which we can obtain
the wrapper object via another memory indirection (r->ext_ref). Thus
we go from 32 bytes to 24 bytes for each such wrapper.

This means that accessing the GAP wrapper for the ring associated to
a dependant object is a bit slower. However, this turns out to be a very
rare operation; for computations we almost always need the C++ ring
object only.

The resulting code is shorter, we save memory, and some code paths
are even a tiny bit faster. Yay!