Re-define LSH for specified widths to ze/trunc

LSH now works just like RSH does: it'll zero-extend or truncate its
output whenever it's been specified with an explicit width.  The
DREAMER assembly is capable of generating this, so I figured I had to
support it.

The previous few commits were attempts to work around this bug, but
I'm now just defining it as a bug.