Order actions: renew subscription (amendment)

<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. 

For each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.

https://www.learning-styles-online.com/style/visual-spatial/

-->

### Problem

CDot portal currently supports ability to renew a subscription using the [amendment api](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/68a37d0799e631fd9430ad07cebd620fdd97a271/app/services/amend_subscription_service.rb#L156).

In the Orders API renewing a subscription can be done with `orderAction` of type `RenewSubscription`.

Similar to [other amendment actions](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/4323#problem), we need a service to that creates an `orderActions` object when a [subscription is being renewed](https://knowledgecenter.zuora.com/Billing/Subscriptions/Orders/AC_Orders_Tutorials/C_Renew_a_Subscription?_ga=2.158945338.1673435247.1652906974-397155918.1648069381&_gl=1%2A1yg5lba%2A_ga%2AMzk3MTU1OTE4LjE2NDgwNjkzODE.%2A_ga_MY8CQ650DH%2AMTY1MjkwNjk3Mi41Ni4xLjE2NTI5MDgyMDUuMA..).

### Proposal

<!-- Consult with `@gitlab-com/business-technology/enterprise-apps/zuora-architects` on the ~"Enterprise Applications" team if Zuora business logic is involved. -->

Order related services can be summarized in the following way:

![Orders_architecture](/uploads/1283f86682dff3e6aa5aff82959502de/Orders_architecture.jpg)

The renewal order action can be supported with the below steps:

- [ ] Create a `RenewSubscription` order action service in `app/services/zuora/orders/actions`. The service inherits `Zuora::Orders::Actions::BaseService`
- [ ] Implement `#execute` method. The `#execute` method returns the hash required by `RenewSubscription` orderAction (`type` and `triggerDates`)
- [ ] Since `CreateSubscription` service also implements `triggerDates` (see [source](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/68a37d0799e631fd9430ad07cebd620fdd97a271/app/services/zuora/orders/actions/create_subscription.rb#L42)), we can create an entity for `TriggerDates` in `app/services/zuora/orders/entities`. Use this entity in `RenewSubscription` and refactor `CreateSubscription` to use it. Example of an entity: [`NewAccount`](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/main/app/services/zuora/orders/entities/new_account.rb).


### References

`RenewSubscription` orderAction attributes:

| Parameter | Type | Description |
|-----------|------|-------------|
| `type` | String | Constant value: `RenewSubscription` |
| `triggerDates` | Array of Objects | Each object has the keys: `name` and `triggerDate`. Defines `ContractEffective`, `ServiceActivation` and `CustomerAcceptance` dates <br/>`ContractEffective`: $Subscription.term_end_date <br/>`ServiceActivation`: current_date <br/>`CustomerAcceptance`: Not present in existing payload. We can probably use current date.   <br/>Refer example below for object construction. |

<details>
<summary> Example return object </summary>

```
{
  "type": "RenewSubscription",
  "triggerDates": [
    {
      "name": "ContractEffective",
      "triggerDate": "$Subscription.term_end_date"
    },
    {
      "name": "ServiceActivation",
      "triggerDate": "$Today"
    },
    {
       "name": "CustomerAcceptance",
       "triggerDate": "$Today"
    }
  ]
}
```

</details>

### Result

The service constructs the `orderActions` object to renews a subscription.

### Next steps (if any)

### How will we measure success?

Story points: 2.0