Reviewer AMC: Story 851

Andy,

Please can you review my homestead changes for story 851. These involve extracting charging addresses off SAAs and sending them back to sprout, and also extracting charging addresses of PPRs and caching them.

I'm not interested in a discussion about the usability of the homestead handler UTs. Let me know if you have any questions not concerning them.

This has full code coverage for UTs but is not tested live yet. That comes later. Feel free to review befoer that though.

Thanks,
Graeme
Generally this API inconsistent.  We should make it consistent somehow.  Suggestions so far (in no particular order):

 * Builder model (create a plain object, modify it to your heart's content, all perform())
 * Overloaded constructors (One for each subset of the fields you want to change, with common method underneath).
 * `Option` types
 * Pointer types with NULL for "don't update"
 * More boolean fields.