The A/B test mechanism that is implemented for the confirmation page must be enabled for the whole application: any template (esp.the donation form) should be a/b testable. The campaign function must allow for several running A/B tests, running independently from each other.
The following behaviors must be changed:
* Get rid of complex folder structure: All A/B testing templates should be stored in `app/templates/ab_tests`, with different template names.
* Test buckets (campaign, bucket) should be stored in cookies to deliver a consistent interface to the user.
* `DonationConfirmationPageSelector` needs to be refactored to a general `PageSelector` that gets "default" templates and optional "campaign" templates for each default template. The `selectPage` needs to get a bucket to determine which template to use. The call to `selectPage` must be moved from `ShowDonationConfirmationHandler` to `getIncludeTemplate` and `getLayoutTemplate` in the `FunFunFactory`.
* The main template must get blocks where templates can define additional JavaScript and CSS.