[lib] Split thread-types
Summary:
Splits thread-types.js into two files: thread-permission-types.js and `thread-types-enum.js. It's done for the same reason as when we extracted the message enum - to remove a dependency cycle (that would be otherwise introduced in the next diffs).
There's one small additional change: validators in thread-types-enum.js now have to be explicitly annotated (because they are now imported across files), and this required changing the flow type of tcomb.dict() function to accept string literal unions/enums and not just strings.
Depends on D7749
Test Plan: Run yarn jest-all and yarn flow-all. Check if web and landing work.
Reviewers: kamil, tomek, ashoat
Reviewed By: ashoat
Subscribers: ashoat, atul
Differential Revision: https://phab.comm.dev/D7783