Add `user` field to overlooked `State` struct.
Add `withState` which is like `parameterize`.

Also, change `setState` to return the prior value.
Add a couple tests for user state.
Scribble: Update `State`, add user state docs.