refactor: use ListWorkItems from client-go for work-items list
Description
Under the hood, the code was refactored to use a built-in GitLab API client method (ListWorkItems) instead of a custom-built GraphQL query layer. This removed a significant amount of hand-written API code that is no longer needed. Related data structures and helper types were also moved to a shared utilities package so they can be reused across the create, delete, and list commands.
The tests were updated to reflect the new API approach, replacing the old GraphQL mock setup with the new client-based approach.
This update also simplifies how the "list work items" command filters by state. Previously, users could filter by opened, closed, or all — now the valid options are just opened or closed, with no filter applied by default (previously it defaulted to opened).
This MR includes a breaking change
This change relies on the Work Items GraphQL API for epic/work-item listing. On self-managed GitLab, that API path was introduced in 17.4, enabled by default in 17.7, and became generally available in 18.1 (migration guide). As a result, compatibility should be expected for self-managed instances running 17.7 or later, may depend on feature availability or configuration in 17.4 through 17.6, and should not be assumed for versions earlier than 17.4.
Related Issues
Resolves #8346