[analytics] donation tracking (GA)

- using Google Analytics enhanced ecommerce
[campaignion_bar] Do not render empty menu items

If a user has no access to the linked page, the menu item is not rendered, but the parent item is, even if it's empty. This patch adds a check to see if the parent item is an empty container linking to the frontpage, in which case it isn't rendered either.
Refactor query building and signatures.

- Enable autoloading in poll.php.
- Query parameters and hashing are now handled in a RequestParams object.
- Merge poll_all.php into poll.php.
- Use parameter hashing in poll.php too.
- FIX: $addressfield must be used in the queries too.
- FIX: all supporters were only displayed if the supporters had an entry
  in field_address.
Move backend code into it's own class.
[analytics] cover more content types
Make the backend responsible for getting the right translation.
Plugin loader and selection in the admin interface.

- Unify how settings are handled.
Implement the webform-only backend.
[analytics] currency code + webform submission fix

- get currency code from paymethod_select
- webform submission sends correct action value for non-donation types
  too (thx @phaer)
- guard against missing window.sessionStorage in JS
Merge branch 'recent_supporters_backends' into 7.x-1.x
[google_analytics] Merge payment tracking for donations.
Merge branch '7.x-1.x' of https://github.com/drupalprojects/campaignion into 7.x-1.x
[wizard] Support cientside_validation in EmbeddedNodeForm.
[google_analytics] Fix javascript error if ga is not loaded.
[recent-supporters] fixup flags not being displayed for live updates.
[campaignion_bar] More persistent styling

Makes sure that font styles in the Campaignion Bar
are not accidentally overwritten by the site's theme.
Merged upstream