Similar to `isInvalidSidebarSource`, we want an `isInvalidPinSource` method to check individual message specs and return the correct boolean. This diff introduces the function and updates the relevant callsites to call `isInvalidPinSource` rather than directly checking `isComposableMessageType`. This is in an effort to isolate all of the logic to a single source of truth.
Depends on D9444
Addresses 2b of [[ https://linear.app/comm/issue/ENG-4849/thread-from-robotext-about-pinned-message-causing-errors#comment-36f2e045 | ENG-4849 ]].