Fix several bitshift(<<, >>, and >>>) specs

We weren't adhering to the spec strictly enough to cover all bitshift
edge cases. This only fixes interpreted mode - fixing this for
compiled will take a bit more thought.