safe_cast: move the integral/float specialisation to safe_cast.hpp.

This should solve the issue of float->c++ int conversions not being available
if one does not include mp_integer.hpp.