[#65271738] Clarify intention of unit tests

Previously, each unit test tested several expectations. This refactor uses contexts to clarify with separate tests what is expected from each scenario.

Re-writing the tests in this way makes two outstanding bugs even more obvious:

 - lack of dependency injection in the Nat Service requires repeated set-up for each context https://www.pivotaltracker.com/story/show/65619490
 - config is empty if `update_required?` has not been called (fixing this is a pre-requisite to finishing https://www.pivotaltracker.com/story/show/65271738)

There is no change to the functionality of unit tests in this PR. Nothing new has been added - existing tests have just been moved around.


There are stories already outstanding to deal with these issues.