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