Remove old lvalue special state; use references instead
Remove old lvalue special state; use references instead

Previously AssignmentExpression, ForInStatement and UpdateExpression
used the special lvalue sub-state to do case analysis on the type of
expression which was to be updated.

This has now been removed; instead, states which update a variable or
property instead request (and hopefully obtain) an (un-getValue()ed)
reference.  The states for AST nodes which are left-hand-side
expressions (see ES5.1 §11.2) now implement the (new) lvalue interface;
if .reqRef() is called on them they will yield a reference instead of
concrete data.Value.

NeilFraser/CodeCity,NeilFraser/CodeCity,NeilFraser/CodeCity,google/CodeCity,google/CodeCity,NeilFraser/CodeCity,google/CodeCity,google/CodeCity