Candidates create/read/update

The basic logic for creating/listing/viewing/editing candidates. Tests incomplete. Further commits will follow-up