Include email, phone, relationship info, & registered-by payments in reports

Eileen,

This patch includes the updates I mentioned on JIRA the other day which add columns for contact email, phone, relationship info (including basic contact info, email, phone, address), update the SQL statements so that registered-by payments in all 4 types of reports (contribution, line item, participant, membership), and allows display of test and pay-later columns.

Sorry this is so large and has so many changes all at once.  They are sort of intertwined.  Also this I started with your files of August 25th (I believe) so some of the changes suggested are probably actually reversions of things you've added or fixed since then.

Major changes:

- Pulls in registered-by line items & contact info for events  - into
the contribution report, the line-item report, and the participant
report.  These had been omitted in previous version of Extended Report
meaning there was no way to get a complete list of donations or event
registrations if some had been registered by another person.

- For line item & contribution, the payor is the main contact and you
can pull in the other contact who was registered by the payor as a
secondar column (registered-for).  For even participant listings, the
participants are the primary contact and the registered-by contact is
brought in as a secondary.

- Allows inclusion of contact email & phone in report

- Allows inclusion of key relationship contact info, address, email,
phone in reports.  "Key relationship" is spouse for individuals &
manager/owner for organization.

- Allows display of "is_test" and "is_pay_later" columns in participant,
contribution, and membership tables (I couldn't figure out how to get
filtering on these to work but at least the info can be displayed as a
column)

Smaller changes:

- Allow ordering by event start date

- Contribution ID title - was previously blank

- Added an SQL line to ensure that the *primary* mailing address is
always the one selected for each contact.  (Similarly the new email &
phone columns always bring in the *primary* email or phone for the
contact.)

- 'callback' => 'joinContribution:git FromParticipant' -> 'callback' => 'joinContributionFromParticipant', about line 1331 of ExtendedReport.php