Simply returning ‘guest’ for the customer property changes the data
type of the response from a dictionary to string which is bad for
clients that should be able to always expect a dictionary. This commit
fixes that by using the same dictionary structure as registered
customer orders, but excluding fields which aren’t applicable. Clients
can determine guest vs. registered customer orders by inspecting the
value of customer ID, which is 0 for guest orders.
This commit completes the XML response handler and adjusts the output
format for all resources to include a top-level property that encloses
the response. This is more consistent with the multi-resource (e.g. GET
/orders) response.
Part of #4165