Rewrite mul/sqr for 32bit/64bit

- interleave calculation of the lower and upper partial product ranges, and reduction
- less registers needed, more opportunities for parallel ops
- "bench" performance: +3.5% for 64bit, +7.5% for 32bit (as tested on a 64-bit machine)