Add more strict dependencies

Using ">= 1.0.0" is likely to give us trouble any time a dependency
releases a major version
Remove append_view_path from api ControllerSetup

That line was preventing us from overriding templates within other
application or extensions

Fixes #3450
Shipments need to check if they can get rates

before trying to get them, a private method
has been added to check if the shipment is ready
to get rates, currently it only checks if the order
has set a shipping_address, if theres custom business
logic for a specific store this is what they should
be customising instead of the refresh_rates call
which is already getting too complicated by itself.

Added tests for this and had to include a before call
to stub this same call in order for the other tests to pass.

fixes #3848
fixes #3849
Simplify `can_get_rates?` in Shipment
Revert "Remove append_view_path from api ControllerSetup"

This reverts commit d6f9e4494d5292eb8fb89c5d31d5e3b1775e229c.
Fixed Spree::Api::ProductsController#index to accept multiple ids

Fixes #3886