Use permitted_option_value_attributes instead of permitted_option_type_attributes

Fixes #4772
Add deletion protection for promotion actions

When promotion actions get destroyed, all of their completed adjustments
then have a reference to a non-existent source, which causes data issues
when trying to understand what promotion an adjustment was for.

Since promotion actions get destroyed when a promotion changes how it is
applied, which can happen somewhat frequently, adding a paranoia around
it will allow a paper trail back to the original promotion.

Fixes #4806

Conflicts:
	core/app/models/spree/promotion_action.rb
[api] Ensure order ids are ordered in orders_controller_spec