Fix var type inference2

Giving it another try.
Well... the sort of the rewrite is a bit tricky.
As I said before, we don't want to choose minimum sort for operators, but instead maximum allowed by the context.
This is a simple way to look at overloaded operators, and if you want something else, then you have casting.
What I did here is a bit of a hack. I'm trying to bypass the `computeSort` function. Probably I will have to revisit the entire thing, although I'm not entirely convinced how to proceed.