Provide precautionary handling for theoretical error scenario.
While testing payments I hit a bug where I tried to add a payment to a contribution with no financial items.
I never managed to replicate it again or determine how the payment came to be in that state but
it's been playing in my mind that people could get fatal errors if the financial_items don't exist
and dealing with those as regression reports will very tough. So my plan is
- for 5.20 add this extra routine to create it if it does not exist
- use this mechanism + more digging to figure out how legit an issue it is https://github.com/civicrm/civicrm-core/pull/15706
- in future releases 'get noisy' about having to create them if they don't exist
- eventually remove this routine