Campaign/CRM functionality

Added features needed for managing contacts within a campaign. Still a lot that can be done, but this should do as a minimum viable product before the weekend.