error message was not being handled in GB code

When Hilbert driven GB is being done (or free resolution too),
it can happen that the user gives an incorrect hilbert function.
This is manifested when the expected number of GB elements in a degree
comes out negative (currently, the function hilb::coeff_of takes
caste of this).  In this case, an error is set.  Previously, of the
several calls to this function, most were ignoring this possibility.
Now they all consider it.

Better would be if an error is thrown, and the routines in question were
prepared to handle that exception.  This would be a more serious change.
All references to the not implemented IM2_Matrix_contract0 are removed.

This is a function that was never used, and probably isn't needed any
longer.  So I removed it.
The delete that was commented out was incorrect: ring_elem cannot be deleted.

i.e. it was correct to remove that 'delete'.  So I am removing the
warning message, and the commented out (wrong) delete.
changed from_int, set_from_int to from_long, set_from_long.

Tests seem to work (except: e/unittests has a problem in RRR.multDivide,
and test/content.m2 isn't fixed yet.
This affected very many files!  A few casts were changed as well.  The
reason I had to change the name: if we have defined from_int(long), and
from_int(mpz_t), then from_int(0) is ambiguous!  0 is an int, and can be
promoted to a long, or a pointer, and it can't decide.