Adding search class to SalesOrder
Initial base record class implementation

In reference to: https://github.com/NetSweet/netsuite/pull/129#discussion_r19126261
Adding missing update call to ItemFulfillment
Second pass at implementing a base list class

for sub-list management
Using scriptId instead of internalId in search XML generation

Not sure if this will cause issues with < 2013.2 API versions
Renaming GenericList to Sublist
Adding Sublist support class spec
ItemFulfillmentItemList is using Subclass

First sublist using the Sublist base implementation
The goal is to DRY up the sublist implementation
Add upsertList action to Inventory Transfer
Add upsertList action to work orders
Fixing search spec

Broken because of 54d7b011d9485dad33504135dfe8153c86cae9a0
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