T916 - adding function to copy donation object without maintaining references

Issue:
Fundraiser sustainer clones the master donation to create the recurring series in _fundraiser_sustainers_create_future_orders. Since a cloned object maintains references the master donation is effected by changes to the new donations. Fundraiser later saves the master donation and those changed values end up in the database.

Recreate:
Intitiate a recurring series through a donation form. Values in the master donations data array will be wiped.

Fix:
Setup a copy function so the donation objects can be copied without references.