Use UserNamespace for all personal namespaces
We have 3 types of `Namespaces`:
- personal namespace / `UserNamespace`
- `Group`
- `ProjectNamespace`
Unfortunately, we don't have actually have `UserNamespace` model. We used a generic `Namespace` model instead, and had used various workarounds in the codebase for this (eg: [`Namespace#kind`](https://gitlab.com/gitlab-org/gitlab/-/blob/v14.0.0-ee/app/models/namespace.rb#L219)). This is confusing, but can be easily fixed and cleaned up:
- introduce a new `UserNamespace` model which inherits from `Namespace`
- backfill `type` to `UserNamespace` in a background migration
- get rid of workaround for missing `type` for personal projects
epic