Remove a debugging writeln
Fix a bug obtaining the high bits of a LSH-and-extend

Once again the fact that all the shift operations can do implicit
extensions has caused me some trouble.  I guess this time it's my own
fault (as I'm generating the instruction to begin with), but it is a
pain!
Implement a restricted MUL widening

This is a mess: it only works for 1-word * 1-word => 2-word
multiplications and it will only work when the inputs are of the same
width.

There's a test case as well.