Introduce enums into Workspace graphql type
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Work on this issue](https://contributors.gitlab.com/manage-issue?action=work&projectId=278964&issueIid=409772)
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=409772)
</details>
<!--IssueSummary end-->
MR: Pending
<!--
The first line of the MR must be one of the following:
1. `MR: Pending`
2. `MR: <MR link with trailing +>`,
and the first description line of the MR should be `Issue: <Issue link with trailing +>`
3. `MR: No MR`
For more context, see:
https://about.gitlab.com/handbook/engineering/development/dev/create/ide/index.html#1-to-1-relationship-of-issues-to-mrs
-->
## Description
`As a GraphQL API user, I want to use enums where possible so that there is better type support, safety, autocompletion, etc. in GraphQL queries.`
The following discussion from !105783 should be addressed:
- [ ] @kassio started a [discussion](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105783#note_1240941520): (+1 comment)
> **suggestion** What do you think to use a type::enum here, based on `::RemoteDevelopment::States::VALID_DESIRED_STATES` (https://gitlab.com/gitlab-org/gitlab/blob/remote_dev/ee/lib/remote_development/states.rb#L16)?
>
> https://graphql-ruby.org/type_definitions/enums.html
## Acceptance Criteria
Fix all related TODO for this issue for all enum types:
- [ ] `ee/app/graphql/mutations/remote_development/workspaces/create.rb`
- [ ] `ee/app/graphql/mutations/remote_development/workspaces/update.rb`
- [ ] `ee/app/graphql/types/remote_development/workspace_type.rb`
- [ ] Any other new mutations/types that have been added to the remote development domain.
- [ ] ~~Note that we do **_NOT_** want to use `enums` in the ActiveRecord models, because they break the `ActiveRecord#save` contract by throwing an `ArgumentError` on `#save`, instead of `#save!`. See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129708#note_1538946504 for more context.~~
- **UPDATE: This has been fixed in Rails as of https://github.com/rails/rails/pull/49100. If we are on a version of Rails which includes that, then we can use enums in the ActiveRecord models**
## Technical Requirements
Use enums where possible, and update relevant specs, docs, and queries.
## Design Requirements
N/A
## Impact Assessment
More efficient, user friendly, and safe usage of the GraphQL API for the remote development feature.
<!-- Replace with other type, e.g. bug or maintenance, if appropriate -->
<!-- Replace with other subtype if appropriate -->
<!-- By default, all issues start in the unprioritized status. See https://about.gitlab.com/handbook/engineering/development/dev/create/ide/#-remote-development-planning-process -->
<!-- For simplicity and to avoid triage bot warnings about missing workflow labels, we will default to issues starting at the refinement phase -->
issue