Upon getting started with a self-hosted install I wanted to create a new project. I selected the drop-down at the top and selected "Create a new project".

<img width="403" alt="Screen Shot 2021-06-29 at 11 12 24" src="https://user-images.githubusercontent.com/328367/123799033-b28fb080-d8df-11eb-8423-40d7b978af1b.png">

This then took me through a flow to request a license.

https://user-images.githubusercontent.com/328367/123798516-27aeb600-d8df-11eb-873d-826e13e4e224.mp4

After chatting to @marcushyett-ph I realised that there's a banner at the top of the page that has a "Go to setup" CTA that lets me create a new project. I'm a little embarrassed that I didn't notice this 😊 But I'm assuming other people may not see it either or just see it as some sort of success banner.

<img width="1311" alt="Screen Shot 2021-06-29 at 11 12 45" src="https://user-images.githubusercontent.com/328367/123798988-a6a3ee80-d8df-11eb-9e1d-88aa1e23a7f8.png">

Could the top drop-down also let me go through this flow? Could this result in people failing to get started and instead thinking they have to request a license?

## Describe the solution you'd like

Could the top project drop-down be aware of the context of the user: that they have not yet created their first project? And if that's the case then run them through the setup process?

posthog/api/organization.py
password_validation.validate_password(value)
        return value
    def to_representation(self, instance):
        serializer = UserBasicSerializer(instance=instance)
        return serializer.data
    def validate(self, data: Dict[str, Any]) -> Dict[str, Any]:
        if "request" not in self.context or not self.context["request"].user.is_authenticated:
            
            for attr in ["first_name", "password"]:
                if not data.get(attr):
                    raise serializers.ValidationError({attr: "This field is required."}, code="required")
        return data
    def create(self, validated_data, **kwargs):
        if "view" not in self.context or not self.context["view"].kwargs.get("invite_id"):
            raise serializers.ValidationError("Please provide an invite ID to continue.")
        user: Optional[User] = None
        is_new_user: bool = False
        if self.context["request"].user.is_authenticated:
            user = cast(User, self.context["request"].user)
        invite_id = self.context["view"].kwargs.get("invite_id")
        try:
            invite: OrganizationInvite = OrganizationInvite.objects.select_related("organization").get(id=invite_id)
        except (OrganizationInvite.DoesNotExist):
            raise serializers.ValidationError("The provided invite ID is not valid.")
        with transaction.atomic():
            if not user:
                is_new_user = True
                try:
                    user = User.objects.create_user(