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!
@benlovell It's all coming back to me now. See https://github.com/moneyadviceservice/mortgage_calculator/commit/8df375b10a86d658a4c2e704d1a5d99b6aebf959#diff-4cfdf52eb4e89dfb53d123d5c2843409R129