Assignmment based type inference

Here is new more powerful type inference engine. See testcases for examples.

ps: Jenkins is ok about the this and it doesn't break pyregr tests.