Solo galeforcevr review

@ndelage @rmw @dukegreene code review please. I think this is fairly straightforward, and all tests are passing, but let me know if you see anything I could improve. Thanks!
Instead of repeating `if address`, just ensure that `address` is always non-nil. You can do this by passing in a new, empty address whenever you don't have one available (usually when creating a new address). Just send in `Address.new`.