Slight refactoring of the PrettyPrinter

Fix the remaining TODOs in the PrettyPrinter so that the callee will set the right place. I think these changes should make it possible to collapse ValueNeed and AddressNeed into a single constructor and instead add an AddressOf constructor in Expression or Program. A cosmetic thing is that I didn't manage to preserve whitespace compatibility with the old structure, but after spending too much time on that minor detail I decided to update the expected output in the test cases instead.