This diff updates `AutoJoinCommunityHandler` to use the `useJoinCommunity` hook. Since the logic for `useJoinCommunity` can only handle one community at a time, we needed to create a secondary handler component (`JoinHandler`) which handles calling `useJoinCommunity` and then awaiting the promise that gets returned by the hook.
Depends on D12713