Fix #622: (x: Long) << (y: Int) generates invalid code.

(also >>> and >>)
Merge pull request #623 from sjrd/fix-long-shifts

Fix #622: (x: Long) << (y: Int) generates invalid code.