This PR addresses a bug described in #263
Basically, whenever a struct involves a custom genqlient binding, a
secondary "premarshal" struct gets generated.
The bug was that this "premarshal" struct was not propagating the
`omitempty` JSON tags, which was resulting in unexpected behavior.
The fix involved a few changed lines in the Go template, and a few
changes in the unit tests.
I have:
- [x] Written a clear PR title and description (above)
- [x] Signed the [Khan Academy CLA](https://www.khanacademy.org/r/cla)
- [x] Added tests covering my changes, if applicable
- [x] Included a link to the issue fixed, if applicable
- [x] Included documentation, for new features (n/a)
- [x] Added an entry to the changelog