Order action: service to create a subscription

<!-- 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

The [Create Order's API](https://www.zuora.com/developer/api-reference/?_ga=2.234436310.991883880.1652218606-397155918.1648069381&_gl=1*9e5pc3*_ga*Mzk3MTU1OTE4LjE2NDgwNjkzODE.*_ga_MY8CQ650DH*MTY1MjI5OTkwOS41MC4xLjE2NTIzMDAyNzYuMA..#operation/POST_Order) supports multiple **Order actions** such as [Creating a Subscription](https://knowledgecenter.zuora.com/Billing/Subscriptions/Orders/AC_Orders_Tutorials/AA_Create_a_Subscription?_gl=1%2A17by380%2A_ga%2AMzk3MTU1OTE4LjE2NDgwNjkzODE.%2A_ga_MY8CQ650DH%2AMTY1MjkxMjQ0OC41Ny4xLjE2NTI5MTMyMDcuMA..&_ga=2.174692130.1673435247.1652906974-397155918.1648069381), Adding a product to a subscription, renewing a subscription and so on. For the sake of this issue, we will focus on the order action to `Create a subscription`.

The Create Order's API has a `subscriptions` array that is responsible for determining all the actions that need to be performed in the Order.

The `subscriptions` array is a collection of `orderActions` objects. An `orderActions` object is an array of actions.

We need a dedicated service for each type of action that will be responsible for constructing an `orderActions` object  (e.g. a service each for `CreateSubscription`, `RenewSubscription`) .

In this issue, we create a service for `CreateSubscription` type and it is somewhat analogous to [`SubscribeService`](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/f730068274d6d4a60615571539243c0c32bef935/app/services/subscribe_service.rb).

### Proposal

<!-- Consult with `@gitlab-com/business-technology/enterprise-apps/zuora-architects` on the ~"Enterprise Applications" team if Zuora business logic is involved. -->

Create module `Zuora::Orders` in `app/services`. This module can be used to services for all Order operations. 

The purpose of each service is to process and return an `orderActions` object used in the [Create Order's API](https://www.zuora.com/developer/api-reference/?_ga=2.234436310.991883880.1652218606-397155918.1648069381&_gl=1*9e5pc3*_ga*Mzk3MTU1OTE4LjE2NDgwNjkzODE.*_ga_MY8CQ650DH*MTY1MjI5OTkwOS41MC4xLjE2NTIzMDAyNzYuMA..#operation/POST_Order).

Create a service `CreateSubscription` in the `Zuora::Orders` module defined. The service implements the following:

  - create and inherit `Zuora::Orders::BaseService`. This base service may not have any utility as of now, but as we create other order action services, we can refactor common code to this base class.
  - defines `#execute` method that accepts `params`

The `#execute` method constructs `orderAction` object to create a new subscription, with the below parameters:

|Parameter|Type|Description|
|---|---|---|
|`type`|String|Will always be `CreateSubscription`|
|`triggerDates`|Array of objects|Each object has 2 keys: `name` and `triggerDate`. Defines the following dates: <br/> [`ContractEffective`](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/f730068274d6d4a60615571539243c0c32bef935/app/services/subscribe_service.rb#L162): current date <br/>  [`ServiceActivation`](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/f730068274d6d4a60615571539243c0c32bef935/app/services/subscribe_service.rb#L163): current date <br/> `CustomerAcceptance`: Not present in existing payload. We can probably use current date. <br/> Refer example below for object construction. |
|`createSubscription`|Object|Define `terms`, `subscriptionNumber`, `subscribeToRatePlans`. Refer example below.|

**Note:** Refer to [`SubscribeService`](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/f730068274d6d4a60615571539243c0c32bef935/app/services/subscribe_service.rb#L163) to determine how the values are set currently.

<details>
<summary>Example return object</summary>

```json
{
  "type": "CreateSubscription",
  "triggerDates": [
    {
      "name": "ContractEffective",
      "triggerDate": "$Today"
    },
    {
      "name": "ServiceActivation",
      "triggerDate": "$Today"
    },
    {
      "name": "CustomerAcceptance",
      "triggerDate": "$Today"
    }
  ],
  "createSubscription": {
    "terms": {
      "initialTerm": {
        "startDate": "$Today",
        "period": 12,
        "periodType": "Month",
        "termType": "TERMED"
      },
      "renewalSetting": "RENEW_WITH_SPECIFIC_TERM",
      "renewalTerms": [
        {
          "period": 12,
          "periodType": "Month"
        }
      ]
    },
    "subscribeToRatePlans": [
      {
        "productRatePlanId": "$ProductRPId"
      }
    ]
  }
}
```
</details>


### Result

The service creates the `orderActions` payload required to create a subscription using Orders API.

### Next steps (if any)

### How will we measure success?

Story points: 2.0