Add caching to `fundraiser_commerce_get_countries()`.

This function is somewhat expensive because there is a call to `_fundraiser_commerce_get_zone_by_country()` for every country returned by `_fundraiser_commerce_get_countries()`. Since there are no parameters on the parent function, the return value is the same every time and is cacheable. I added static caching for a single runtime, but also save $return_data in a cache bin.
Refactoring `_fundraiser_webform_get_components_by_nid()` and its child functions to reduce the number of database queries.

1) Since `_fundraiser_webform_get_components_by_nid()` is often called at least once per page request, we already have access to the results of `SELECT * FROM {webform_component} WHERE nid = :nid`. There's also now a static cache in this function to avoid duplicate queries. Secondly, I added a second argument for returning an array keyed by `form_key`, where it was previously a numeric index.

2) `_fundraiser_webform_get_components_by_keys()` is refactored to call `_fundraiser_webform_get_components_by_nid()` and returns an array of component objects from the requested form keys.

3) `_fundraiser_webform_get_component_by_nid_key()` is refactored to call `_fundraiser_webform_get_components_by_keys()` and returns a single component object from that array.
implemented hook_cron and made standalone cron processing admin configurable.
tweaked donation metric UI verbiage
ported webform_addtoall to 7 and added test coverage
added basic functional tests to email wrappers
Add allow for example to say it handles recurring offline for testing purposes
Map setting from rules config to commerce gateway information.
Merge remote branch 'origin/7.x-4.x' into 7.x-4.x
Renamve vars to the correct names
If this donation is recurring but offline, don't make all the additional recurring modifications to SF mapping
Label naming convention fix
Better testing - check first that test envir has perms
t437 - Support ajax add amount button (and js to go with new elements)
Merge pull request #252 from JacksonRiver/7.x-4.x-refactor-_fundraiser_webform_get_components

Refactoring `_fundraiser_webform_get_components_by_nid()` and its child ...
Merge pull request #251 from JacksonRiver/7.x-4.x-cache-fundraiser_commerce_get_countries

Add caching to `fundraiser_commerce_get_countries()`.
Manual merge pull request t266 from github
Merge remote branch 'origin/7.x-4.x' into 7.x-4.x
Manual merge pull request t265 from github
Merge pull request #256 from JacksonRiver/jr-7.x-webform_goals_bugfixes

Jr 7.x webform goals bugfixes