Allow a shipment to transition to shipped when its order is canceled

Conflicts:
	core/spec/models/spree/shipment_spec.rb

cherry-picked from 4f632c012e250094dc00e83f251768a5b59de6fc in spree master
Do not create a reimbursement after making an RMA with no exchange items

cherry-picked from e38a60ee7ac5e7ead305c62579fd2465fbbe9ae4 in spree master
Reimbursement Type instances dont respond to #reimburse. Fix reimbursement engine, fix tests to more closely resemble actual data

cherry-picked from 74478924e8b0721dd39d7c9dce8242b7957b829a in spree master