Mark old email address as 'On hold' after edit or delete

When an active email address is edited or deleted, re-add the old
value as an 'on hold' address, so that it will be exported in the
suppression list and we don't keep sending mail to people's old
addresses.  Should allow you to delete 'on hold' addresses without
re-adding them.

Change-Id: Ia5b4d4383812655c0a98b8cd3089b150a9a2be9d
Merge "Mark old email address as 'On hold' after edit or delete"
Fix hook fail on api email creation

Email edit hook was crashing when we created new emails via the
CiviCRM API, since it was trying to examine properties of a null
object reference.

Change-Id: I87ad54656f1561c04e264bdcf56836406e5e6837
Use real contribution tracking id for recurring GC

We were using a dummy contribution tracking ID to avoid some
mediawiki-dependent code paths, and ended up sending 123456 as the
merchant reference for a few days worth of recurring contributions.
This patch should look up the real tracking id and use that instead
of the dummy.

Change-Id: Idce6d10eb17497a212651a2b7daf6e8b61e6f144
Merge "Fix hook fail on api email creation"
cheesy solution to prevent null explosion

Change-Id: Iff351a839c97fbeca8a5cfea19f0b96fad8daf72
Merge remote-tracking branch 'origin/master' into HEAD

0436e16303ec1a3984efe1be61cac6bea9ef8f9d Mark old email address as 'On hold' after edit or delete
8b122763533150195acc9303c1160af143d09ff8 Fix hook fail on api email creation
8ea8a4d571a3492fd0e37d6faca6564686761695 Use real contribution tracking id for recurring GC
87d89e40537c90d48f610b7748eb06a62b2b3dc8 cheesy solution to prevent null explosion

Change-Id: I5a9766c10a7203cdef00bb791437ec197d480b35