[Truffle] Implement Fixnum#<<(int) correctly.

* Mostly, there was no case to return an int.

@chrisseaton Could you review?
I am not sure the combination of guards and branches is the best here.
Also, is there no way to have unsigned left shift in Java?
Do we need a special case for `-b >= a.bitsize` ?