Pass remote config in to set-up

Then the whole object is created using local and remote, and the question of whether an update is required doesn't take a parameter.

Unit tests pass, integration tests and calling code not yet updated as there are further changes coming...
I want true not truthy

`be_true` evaluates whether the result is truthy, i.e. not nil or false, and `be_false` evaluates to falsy. I want to know if the results are actually true or false, so `be(true)` or `be(false)`
Make update_required instance variable
Check if the work has been done before returning

If `update_required?` hasn't been called then `config` will not be correctly populated. This commit adds lazy loading - so if the work hasn't been done (indicated by @update_required being neither true nor false) then this method will do it.

Also adds basic tests for lazy loading.
Now can call config before update_required

So removing the unnecessary lines from the unit test
Change the calling code

This means the integration tests now pass again.
Better context name
Merge pull request #6 from alphagov/fix-update-bug

[#65271738] Fix bug update_required? had to be called first