1. Add is_test tinyint column to civicrm_membership (default = 0)
2. Set this value to True for Membership sign up, using Contribution page when action=preview
3. Membership selector rows should show the string "(test)" in the Type column when is_test =1 (e.g. "General (test)" )
4. Queries which display membership rows should always append "is_test = 0" unless we are explicitly querying for test memberships. This includes CiviMember dashboard (recent memberships). Do not show test memberships in Membership tab of Contact Summary.
5. Add checkbox - [ ] Find Test Membership(s) - to Membership Search form (Find Members). When checked, replace - set is_test=1 in query and only return test memberships.
6. Forms for Edit / View of a membership should also display "(test)" - readonly - next to the Membership Type field..
7. Membership export should include a "Test" column with values of "yes" or "no".
Similar functionality has been implemented for Contributions and Participants,