Assignment operations fixes (KT-4814)

Fixing of #KT-4814 with cases like: 
val x = 0
x += 1L // represented as x = x + 1L and being compiled without errors.
Added check that type of (x + 1L) can be stored in variable

Also there are some library and test fixes to cope with new changes