Multiple Customer Addresses and Ship-To Selection

Customers can now hold multiple billing and shipping addresses on the record, and FULL-scope contracts
and invoices can choose a shipping customer and billing/shipping address associated with them.

Customers return billing_addresses and shipping_addresses, each address with an id. On
PUT /customers/{customer_id}, omit a list to keep the stored addresses, send an empty list to remove
them all, or send a list to replace them: addresses with an id are updated, those without one are
added, and the rest are removed. Removing an address used by a contract or an editable invoice is
rejected. address and shipping_address are deprecated but still read and edit the first address of
each list, and omitting them no longer deletes stored addresses.

POST /contracts, POST /invoices and, for standalone invoices, PUT /invoices/{invoice_id} accept
shipping_customer_id, billing_address_id and shipping_address_id. On create, omit an address id
to use the customer's first address, or send null for none. On update, omit a field to keep its
current value or send null to remove the address; null as shipping_customer_id ships to the
billing customer. Changing the ship-to customer without a shipping_address_id uses that customer's
first shipping address. A changed address recalculates tax. Contract-generated invoices take their
selection from the contract.

Contracts now return shipping_customer_id, billing_address and shipping_address. Invoices return
shipping_customer_id, and customer_address / shipping_address gain the id of the customer
address they were copied from, omitted once that address is deleted.

Applies to V4 only.