[lib] Introduce MinimallyEncodedThreadCurrentUserInfo and validator
Summary:
ThreadCurrentUserInfo type w/ permissions as string instead of ThreadPermissions.
Next diffs:
- Introduce MinimallyEncodedRawThreadInfo
- Higher level utilities for translating back/forth from RawThreadInfo <=> MinimallyEncodedRawThreadInfo. Found this to be cleaner API than encoding/decoding RawThreadInfo.currentUser.permissions and RawThreadInfo.members[memberID].permissions "manually" a bunch of different places.
- Native refactoring + migrations
- Web refactoring
- Flipping the switch
Depends on D9731
Test Plan: Unit tests, will be tested implicitly in subsequent diffs as well.
Reviewers: ashoat, rohan, ginsu, tomek
Reviewed By: ashoat
Subscribers: ashoat, tomek, wyilio
Differential Revision: https://phab.comm.dev/D9734