librustc: Remove the fallback to `int` from typechecking.

Not yet ready for merge; lots of tests still failing.

This broke very little real code but broke pretty much every test everywhere.

cc @nikomatsakis
That's...actually nifty. I wonder if we should have a helper for this pattern:

    fn offset(x: uint, offset: int) { x + offset as uint }