added functions to sustainers that upsell needs but that belongs in sustainers
fixed up the campaign ID form element from market source
refactored, fixed, and documented