Fix async product caching to prevent double load. Support Pickup Shipping Service. Add Delivery and Specialty Shipping Service Modules. Separate guest customer checkout from anonymous pricing.

@amikheychik 
Where is `$rescued_clients['xtuple']['api_url']` set?
https://github.com/bendiy/xdruple_commerce/blob/master/modules/xdruple_queries/xdruple_queries.module#L373
I've added it to `src/CDD/Drupal/DrupalConfigReader.php` for this to work on my local setup.

```
...
          'name' => 'xtuple',
          'label' => 'xtuple',
          'url' => "$url/discovery/v1alpha1/apis/v1alpha1/rest",
          'api_url' => "$url/api/v1alpha1",
          'type' => 'discovery',
...
```

`$product` was set [here](https://github.com/bendiy/xdruple_commerce/blob/d69dbecdb27462a131e9d3fa7e5de7dc9141a393/modules/xdruple_queries/xdruple_queries.module#L220), but not in the async loop, so when the line item was loaded, it always loaded the same product and only cached one request forcing all other 19 products to request prices one after the other. This re-initializes `$product` for the async loop and caches all 20 products correctly.

Please merge this and push to the bergin staging server so we can run more test. It should be much faster now.

This also includes support for:
* The Pickup Shipping Service.
* Separate guest customer checkout from anonymous pricing.