Create IronBank Order API client

<!-- 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

As part of the plan to [upgrade to Orders API](https://gitlab.com/gitlab-org/customers-gitlab-com/-/issues/4173), we need a way for CDot to be able to create orders on Zuora.
The [recommended](https://knowledgecenter.zuora.com/Billing/Subscriptions/Orders/Orders_Harmonization/Orders_Migration_Guidance#Subscribe_and_Amend_REST_API_Migration) way to create orders is to invoke Zuora's [Create Order 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).

The IronBank gem we use to interact with Zuora does [not](https://github.com/zendesk/iron_bank/issues/80) support Order object and its related actions. Please however note [`Zuora::Order`](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/main/lib/zuora/order.rb) IronBank resource already exist in CDot.

Although IronBank defines actions such as [Subscribe](https://github.com/zendesk/iron_bank/blob/5a6aae4bd75f74a0906b6256d0824c2e7412d282/lib/iron_bank/actions/subscribe.rb) and [Amend](https://github.com/zendesk/iron_bank/blob/5a6aae4bd75f74a0906b6256d0824c2e7412d282/lib/iron_bank/actions/amend.rb), `actions` are soon going to be deprecated. 

We should therefore avoid creating action classes. Some common behavior from [`IronBank::Actions`](https://github.com/zendesk/iron_bank/blob/5a6aae4bd75f74a0906b6256d0824c2e7412d282/lib/iron_bank/action.rb) base class can be re used.

### Proposal

<!-- Consult with `@gitlab-com/business-technology/enterprise-apps/zuora-architects` on the ~"Enterprise Applications" team if Zuora business logic is involved. -->

Create an client for Orders that implements `#create` method that accepts the parameters defined below, and creates an Order in Zuora.

[Create Order 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) can be used for multitude of purposes such as creating a subscription, ramp deal, adding a product to a subscription, renewing and cancelling a subscription and so on.

Instead of supporting all use cases in the initial iteration, we can iterate over this and start with the bare minimum functionality to create a subscription.

[Creating a subscription through the Orders API](https://knowledgecenter.zuora.com/Billing/Subscriptions/Orders/AC_Orders_Tutorials/AA_Create_a_Subscription?_gl=1%2A2t5uja%2A_ga%2AMzk3MTU1OTE4LjE2NDgwNjkzODE.%2A_ga_MY8CQ650DH%2AMTY1MjMwODUyNC41MS4xLjE2NTIzMDg4NDIuMA..&_ga=2.200168166.991883880.1652218606-397155918.1648069381) requires **at least** the following parameters:

| Name | Type | Description |
|---|---|---|
|`orderDate` (**Required**) | string <date> | The date when the order is signed. |
|`existingAccountNumber`| string | `accountNumber` |
|`subscriptions`| Array of object | Each item includes a set of order actions, which will be applied to the same base subscription |
|`processingOptions`| object (processingOptionsOrders) | Invoice or Payment |


<details>
<summary>Example request </summary>

```json
{
  "orderDate": "$Today",
  "existingAccountNumber": "$AccountNum",
  "subscriptions": [
    {
      "orderActions": [
        {
          "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"
              }
            ]
          }
        }
      ]
    }
  ],
  "processingOptions": {
    "runBilling": false,
    "collectPayment": false
  }
}

```
</details>

### Technical Implementation

1. Create `client` module in `lib/zuora`

2. Implement Orders class in the `client` module. Create and inherit `IronBank::Client::Base` base class (incorporate common features from [`IronBank::Actions`](https://github.com/zendesk/iron_bank/blob/5a6aae4bd75f74a0906b6256d0824c2e7412d282/lib/iron_bank/action.rb) base class.

3. Define `#create` method. It should invoke the Orders API with parameters required to create a subscription: `{ orderDate: orderDate, existingAccountNumber: existingAccountNumber, subscriptions: subscriptions, processingOptions: processingOptions }`

4. Define a method for each of the parameter mentioned in the above pt; e.g. `subscriptions` should return `subscriptions` object `IronBank::Object.new(args.fetch(:subscribes)).deep_camelize`. Alternatively, consider implementing dynamic methods instead of defining one for each. Ref: [subscribe action](https://github.com/zendesk/iron_bank/blob/5a6aae4bd75f74a0906b6256d0824c2e7412d282/lib/iron_bank/actions/subscribe.rb)


### Result

`IronBank::Actions::Order.create(params)` successfully creates an order on Zuora.

### Next steps (if any)

### How will we measure success?

Story points: 2.0