Change type deduction rules to allow integer literals to be deduced as floats.

This is an issue that came up in IRC today. It seemed strange to me that a program like `let num: f32 = 1;` wouldn't pass the type checking rules while `let num = 1f32;` does, so I'm proposing this change to make it work.
Because +1 and -1 will not work as expected if you had actually wanted it to be an integer?