ENH: use gcc intrinsic for overflow checked multiplication

More efficient as it uses processor overflow flags if available.