Set invoice owner for marketplace

## Problem statement

For subscriptions originating from marketplace, the invoice owner needs to be set to be explicitly set ([reference](https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/22a611f9c8795a7d9b7796c302bbbfee2cdf6650/app/services/subscribe_service.rb#L138)). This needs to be incorporated in the Orders API workflow.

## Proposed solution

@qzhaogitlab helped investigating a way to set the invoice owner using the [Change owner of subscription](https://knowledgecenter.zuora.com/Billing/Subscriptions/Orders/AC_Orders_Tutorials/C_Change_the_Owner_of_a_Subscription#Use_the_REST_API) Order action.

From https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/5011#note_1013232946:

Per some Zuora documentation, I tend to think this is not possible.

* from [Preview an order](https://www.zuora.com/developer/api-reference/?_ga=2.258925834.1822949724.1656638338-1336953299.1647685508&_gl=1*1h2399g*_ga*MTMzNjk1MzI5OS4xNjQ3Njg1NTA4*_ga_MY8CQ650DH*MTY1NjY2NDQ4MC40OC4xLjE2NTY2NjQ5NDIuMA..#operation/POST_PreviewOrder) section, it says:

> existingAccountNumber string <= 70 characters The account number that this order will be created under. It can be either the accountNumber or the account info. It will return an error if both are specified. Note that invoice owner account of the subscriptions included in this order should be the same with the account of the order.

* from [Create an order](https://www.zuora.com/developer/api-reference/?_ga=2.258925834.1822949724.1656638338-1336953299.1647685508&_gl=1*1h2399g*_ga*MTMzNjk1MzI5OS4xNjQ3Njg1NTA4*_ga_MY8CQ650DH*MTY1NjY2NDQ4MC40OC4xLjE2NTY2NjQ5NDIuMA..#operation/POST_Order), it says:

> existingAccountNumber string <= 70 characters The account number that this order will be created under. It can be either the accountNumber or the account info provided. It will return an error if both are specified. Note that this actually specifies the invoice owner account of the subscriptions included in this order.

> newAccount object (Account) The information of the new account to be created with the order. Note that this actually specifies the invoice owner account of the subscriptions included in this order. To create the new account, either a creditCard structure or the hpmCreditCardPaymentMethodId field (but not both) should be provided. The one provided becomes the default payment method for this account. If the credit card information is declined or can't be verified, then the account is not created.

* from [Overview of orders](https://knowledgecenter.zuora.com/Billing/Subscriptions/Orders/AA_Overview_of_Orders), it says:

> The following components represent an Order:
>
> Order A contractual agreement between a merchant and a customer. One order can affect multiple subscriptions and order line items which belong to the same invoice owner account. These subscriptions and order line items can be owned by multiple customers.

From the above documentations, it sounds to me, both `preview order` and `create order` do NOT allow setting `invoice account` explicitly (Zuora will set the `invoice account` to the same value as `subscription owner account` by default).

So I think, for the marketplace `invoice owner` setting, we will have to create another Order to [change the subscription owner](https://knowledgecenter.zuora.com/Billing/Subscriptions/Orders/AC_Orders_Tutorials/C_Change_the_Owner_of_a_Subscription#Use_the_REST_API). I had a quick try, it works:

```
[173] pry(#<Zuora::Orders::OrderManagerService>)> transfer_owner_params
=> {:order_date=>Fri, 01 Jul 2022,
 :existing_account_number=>"A00518100",
 :subscriptions=>
  [{:subscription_number=>"A-S00216818",
    :order_actions=>
     [{:type=>"OwnerTransfer",
       :trigger_dates=>
        [{:name=>"ContractEffective", :trigger_date=>Fri, 01 Jul 2022},
         {:name=>"ServiceActivation", :trigger_date=>Fri, 01 Jul 2022},
         {:name=>"CustomerAcceptance", :trigger_date=>Fri, 01 Jul 2022}],
       :owner_transfer=>{:destination_invoice_account_number=>"A00005485"}}]}]}
[174] pry(#<Zuora::Orders::OrderManagerService>)> test_transfer_owner = Zuora::Orders::Create.perform_now(transfer_owner_params)
[ActiveJob] [Zuora::Orders::Create] [e68e488d-ac65-4825-ba33-7f00437cfdfe] Performing Zuora::Orders::Create (Job ID: e68e488d-ac65-4825-ba33-7f00437cfdfe) from Sidekiq(zuora) enqueued at  with arguments: {:order_date=>Fri, 01 Jul 2022, :existing_account_number=>"A00518100", :subscriptions=>[{:subscription_number=>"A-S00216818", :order_actions=>[{:type=>"OwnerTransfer", :trigger_dates=>[{:name=>"ContractEffective", :trigger_date=>Fri, 01 Jul 2022}, {:name=>"ServiceActivation", :trigger_date=>Fri, 01 Jul 2022}, {:name=>"CustomerAcceptance", :trigger_date=>Fri, 01 Jul 2022}], :owner_transfer=>{:destination_invoice_account_number=>"A00005485"}}]}]}
[ActiveJob] [Zuora::Orders::Create] [e68e488d-ac65-4825-ba33-7f00437cfdfe] Performed Zuora::Orders::Create (Job ID: e68e488d-ac65-4825-ba33-7f00437cfdfe) from Sidekiq(zuora) in 4939.16ms
=> {:success=>true,
 :order_number=>"O-00135400",
 :account_number=>"A00518100",
 :status=>"Completed",
 :subscription_numbers=>["A-S00216818"]}
```

Story points: 2.0