Bug with scoping in constructors: assigning to self changes the object

This is the crux of the Address confusion; situations like this are possible
because assignment to variables and assignment to objects are conflated.

Wasn't there a whole 173 lecture on the difference between

x = 5

and

o.x = 5?

We should be able to get this right!