Fix bug in response body when upserting one item

The XML parser returns a hash for:

    @response.body[:upsert_list_response][:write_response_list][:write_response]

when there is only one record upserted.  I added a test to reproduce the
bug and fixed it by making sure the value of `:write_response` is always
an array.

    > Array[{a: 1, b: 2}].flatten
    => [{:a=>1, :b=>2}]
    > Array[[{a: 1, b: 2}]].flatten
    => [{:a=>1, :b=>2}]
Add test coverage to .upsert_list

I want to make sure this is working as expected with one customer.
Fix bug in upsertList request body generation
Capture errors from upsertList