7.x 4.x upsell port from sb3, plus 520 and 521, and 728

This branch includes:
- Fixes a bug where the modal would be displayed even if the payment method expires in the current month.
- Support for choosing between charging immediately and charging in a month for the upsell donation.
- The SendUpsell API method call for the PSI gateway.
- Almost entirely rewritten upsell module.
- Removal of the decouple option, as all upsells are decoupled from now on.
- Updated blockUI JS for the modal.  Requires jquery_update for jQuery 1.7.  The previous version had a bug with detecting jQuery version.
- The modal is now drupal themable.
- Per node upsell email settings via the email wrappers module.
- Added upsell hooks to add additional custom settings that differ from the original donation.
- Added hooks to modify or act on the upsold donation and the master donation.
- Hooks are documented in an API file.
- Added documentation everywhere.
- Used the donation object instead of order where possible to take advantage of existing Springboard 4 code.

Salesforce integration has been broken out into its own submodule.  That includes:
- Allows for a custom campaign ID for the upsell series of donations.
- Sends an Upsell object to Salesforce with references to the upsold original donation and the recurring donation.
- Queues donation and recurring donation objects.
- Allows for market source overrides via settings or URL parameters.