Use pure delegate in Spree::Gateway, compared with delegate_belongs_to

The provider method here is not a belongs_to association, so there's no good reason why we should be using delegate_belongs_to at all. Further more, delegate_belongs_to defines setters for these methods, but that is not necessary at all since these methods do not have setters!
Improved tracking URL generation to handle spaces in tracking numbers

Fixes #4233
Added nuance to shipping rate estimator Now distinguishing between $0 rates (possibly valid) and nil rates which could result in a huge loss to a store in a case where a $1000 shipping fee is reported as a nil by a bad calculator.

Also added an order-level model error message when no eligible
shipping rate is found.

Fixes #4239