Virtual Terminal guest order changes.

The API will not create a new guest user when not choosing a user to place the order on behalf of. This change makes Virtual Terminal behave the same as web orders. Previously if there was no user set on behalf of the API would use the Virtual Terminal agent's information for payment and the order would appear under their customer/user record.

The new guest user will be stored in the on_behalf_of_user_id field on the order. The field cannot be cleared. If it is set to a user ID and then cleared, it will be reset back to a new guest user automatically.

A new boolean field on order is_registered_user_required can be set on virtual terminal orders. If set and the user the order is being placed on behalf of is a guest, the user will be converted to a registered user and an email will be sent to them to choose a password. The email for the new account is based on the billing email of the order. If a user already exists for that email, the API wlll return a 422 validation error.