Refactor of update method

- Don't add the configuration to what you are sending if there's no difference, rather than adding it and then deleting it
- No need for count or iterating through EdgeGatewayServices

This is not the final version of this method. We need to dependency inject so that it can be tested and split it out so it doesn't have too many responsibilities, but this is as far as we are going with it for this story.
Clarify purpose of update_configuration test

The call to Core::EdgeGateway.update_configuration supports updating
single or multiple services at one time -- and is expensive.

We should ensure that we only ever call it once for a given configuration update.
Ensure that we actually update FirewallService

Specifically:

* Test that we are starting from a clean slate
* Test that we create some rules (effectively, test that our generator works)
* Test that the number of remote rules matches the local number.
DRY out FirewallService tests
improve test title
Remove unneccessary helper method
Remove redundant test

This is now tested more cleanly in the update context
Merge pull request #140 from alphagov/refactor-update

[#62380500] Refactor of update method
Merge branch 'master' into improve-vse-tests