DonationData: cleanup of basic data retrieval

I was having an empty string explosion problem. This makes sure
that all the data that comes out of DonationData was... you know,
actually represented somewhere in the current donation flow.

THIS IS POTENTIALLY DANGEROUS: The difference between an empty key
and a missing one, is that all XML going out of DonationInterface
will no longer populate empty nodes for data that we don't really
have (this is good): Instead they will be left off the outgoing
request XML entirely. Much live sandbox testing will need to
happen.

Conflicts:
	tests/DonationDataTestCase.php

Change-Id: Icd87617cc428d3b29ab9958381953db37f44479b
Add generic currency fallback with optional notification

Add FallbackCurrency and NotifyOnConvert gateway globals to enable
converting unsupported currencies to a default and optionally notfying
the donor.

Moved the conversion logic from PaypalGateway to new GatewayForm
method fallbackToDefaultCurrency.  GatewayForm::validateForm calls
this and notifies if conversion has occurred and either notification
is enabled or any other form error exist.

Conflicts:
	tests/AllTests.php
	tests/includes/test_gateway/test.adapter.php

Change-Id: I6e236792a65b3fb06bb3cf6791410245a4833217