Reconcile contribution amount tokens
This adds non_deductible_amount, as identified in https://github.com/civicrm/civicrm-core/pull/21034
It also moves the metadata functions to a parent class - this class might wind up
being a temporary class as there are 3 other contenders for where this functionality
should go - the TokenTrait, the abstractProvider or the tokenRow class. The intent
is not to make that decision yet - just to provide visual clarity about
what is generic
Note - I've figured out how to switch over to v4 api for this but will do that in a separate PR