Allow shipping calculators to return nil values if no service is matched.

With shipping calculators returning 0, we run the risk of choosing and charging
a cost of $0 in cases where for example spree_active_shipping has a failed rate
query with the carrier API. This could be a very expensive mistake.

Current problem as it stands is that with spree_active_shipping returning nil, if
the calculator returns nil, no other rate options are tried and the customer sees
no shipping options in checkout.

This fixes https://github.com/spree/spree_active_shipping/issues/104

Fixes #3588

Fixes spree/spree_active_shipping#104
Waiting for ajax to complete fixes spec from breaking in sqlite3. Fixes #3569
Address feature #3559 .  Add first_day parameter under date_picker config to allow developers to configure the first day of the week on a per-locale basis.  Default to Sunday.

Fixes #3559
Fixes #3595
Allow Jruby

Fixes #2965
adds spec to demonstrate that Spree::CreditCard.expriy_not_in_the_past is incorrect.  fixes validation bug inside Spree::CreditCard.expiry_not_in_the_past.

Fixes #3454
Fixes #3466
Missing translations. Fixes #3548
Skip stock status when track_inventory_levels false

No need to check stock status for any item on the order if the store
doesn't care about inventory levels. Noticed after reading #3438

Fixes #3440
Pass updated order object to `adjustment.update!`

So that the adjustment can be recalculated over updated order totals. It
also introduces an `update_shipping_adjustments` method because we
shipping adjustments will need a shipment object and in that scenario we
don't need to pass the order