ENH: use gcc intrinsic for overflow checked multiplication

More efficient as it uses processor overflow flags if available.
Merge pull request #5304 from juliantaylor/mul-overflow

ENH: use gcc intrinsic for overflow checked multiplication