Reimbursement Type instances dont respond to #reimburse

* Fix reimbursement engine
* Fix tests to more closely resemble actual data
* Add shared tests to make sure anything returned by the engine responds to reimburse

Fixes https://github.com/spree/spree/issues/5218