API: Add XML generation

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
Merge pull request #4177 from maxrice/rest-api-xml-issue-4165

API: Add XML generation
Fix ajax calls for adding and deleting order item meta from the backend.
order totals #4042
order notes #4042
order totals #4042
order items #4042
reports #4042
chosen #4042
tax rates table #4042
debug report #4042
status_table #4042
Check products are purchasable when restoring cart

If WC_Product::is_purchasable() is only called when adding a product to the cart,
it's possible to purchase products that aren't purchasable (but were when they were
added to the cart).
Add WC_Cart::get_cart_for_session()
Implement order status update endpoint

Closes #4161
Add action for plugins to load other API resources

 Part of #4055
Perform core authentication at 0 priority

Makes it easier for plugins to override the core API authentication

Part of #4055
Load admin profile class when editing a user
Fix permissions typo

Part of #4055
Specify 2 decimal places for woocommerce_format_decimal()

Part of #4055