ExpressionTransformer #1917: fix type of assignment in expressions
Test for #1917
ExpressionTransformer #1917: deal with java type interop in assignments too
Updated tests .src for #1917: assignment type is RHS
Added java interop type conversion test for #1917: assignment is RHS type
ExpressionTransformer #1917: turns out we need the whole erasure boxing rules for assignment now

Otherwise we get things like

Type x = (Type)
let(
Object tmpvar = nothing;
y = tmpvar; // here we need to add the (Type) cast as well
)
returning tmpvar;

for Type x, y; x = y = nothing
ExpressionTransformer #1917: use the LHS type if the RHS is null

Because otherwise the Java bottom type is stored in java.lang.Object, which is not
of the bottom type, so x = y = null will fail because null is stored in java.lang.Object
and can't be assigned to either y or x
Updated test .src for #1917: type of assignment

I give up on trying to fix this totally unnecessary cast, because it has to do with another
bug related to rawness of tuple types where we consider that they are raw without considering
the fact that in fact they are erased to Sequential, which has far less constraints and rawness
New test for null/nothing in assignments #1917