[ENG-10869](https://linear.app/comm/issue/ENG-10869/farcaster-communication-layer).
Implement types and validators for Farcaster entities. Types are our own implementation, inspired by the docs we have and by looking into Farcaster API responses.
I picked props that I believe could be somehow useful and can be used as part of the MVP. Added `tShapeInexact` to allow additional fields that the API can return, but are not needed for us. Validators should only care about things that will be needed for client logic. If I added too many props, we can remove them later to keep the surface as lean as possible, created task for this [ENG-11106](https://linear.app/comm/issue/ENG-11106/remove-unecesary-props-from-farcaster-validators).