ensugars assignments: wow that's a MESS!!!

There are 5 different desugarings related to assignments:
1) foo.x = rhs
2) foo.bar(y) = rhs
3) x += rhs
4) foo.x += rhs
5) foo.bar(y) += rhs

Moreover, depending on stability of foo and y, 4 and 5 might spawn
alternative desugarings that involve temporary variables

What makes things worse is the fact that the corresponding ensugarings
don't have adequate mapping onto Scala ASTs. Therefore, I had to move
their handling from Ensugar to Host, which made things more complicated
that I'd want.