SemanticPass: Merge the "lhs" flag into "expr_mode"
SemanticPass: Merge the "lhs" flag into "expr_mode"

The "lhs" flag was only ever set in combination with the "result"
expression mode. However, this mode doesn't make much sense in lvalues
(in which the "lhs" flag is set), only in rvalues.

This commit replaces the "lhs" flag with a new expression mode called
"assign" and adapts all related code. The result is simpler both on the
conceptual and code level.

juttle/juttle