Two minor changes here:
- Replace get/setUser() with get/setViewer() for consistency with everything else.
- getViewer() now throws if no viewer is set. We had a lot of code that either "should" check this but didn't, or did check it in an identical way, duplicating work. In contrast, very little code checks for a viewer but works if one is not present.