Eval now produces the value instead of a location.

It used to produce the location of the value which the caller used,
which was useful for reusing the eval for LHS of assignments, but
sucked for everything else. Now we have an explicit function to lookup
the LHS locations to assign.