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