Fix failing tests

:green_apple: :green_book: :green_heart: :tea: 

Mostly tweaky fixes, with the following notable changes:

1. `Person` can now access its parent `Affordability` object to work out whether it's the 1st or 2nd person, so it can serve up the right error messages.
2. The validations were a bit tangled up, with some validations raising exceptions if other objects weren't valid. This probably needs a refactor, but for now I've just got them executing in the Right Order.

Probing questions encouraged!
I know you've just modified existing code here but a quick improvement would be `people.all?(&:valid?)` instead of the negation and stuff.