added overload test and tweaks for inference algorithm to split forward from 2way passes.. 2way inference assumes arithmetic operators take&return same types. obviously not true with overloads. now it tries to select overloads after resolving forward-only first, to recover C++style behaviour