[WIP] Feedback - basics of implementation

Just putting this out there for some feedback, mainly in terms of the stuff in `lib/core`, what with this being the first time data is coming out of the app rather than just consuming.

Fundamentally there's nothing complicated being done, we're just ferrying a bunch of data across to a mailer, so the repository and interactor have little to them.
Rebased and fixed.