Refactor update_required?

Refactor
`Vcloud::EdgeGateway::EdgeGatewayConfiguration.update_required?` so that
it does not modify
`Vcloud::EdgeGateway::EdgeGatewayConfiguration.config`, which is
potentially confusiong for a method that by convention should only
return a boolean.

The logic in `update_required?` has moved to the `config()` method,
which has been renamed to `generate_new_config()` to make the name more
descriptive.

I have also removed `local_config`, `remote_config`, and
`edge_gateway_interfaces` as instance variables; these are now passed to
`generate_new_config()`.

`generate_new_config()` is now a private method so that we can change our
internal interfaces more easily without worrying about making
what would have been breaking changes; it's also called immediately from
the `initialize()` method.

`generate_new_config()` does not update the `@config` instance variable,
rather it updates a `new_config` method variable which it then returns.
I've added an `attr_reader` for the `@config` instance variable
accordingly.
Fix overly long lines

To make them easier to review.
Merge pull request #67 from alphagov/71223820-update-required

[Fixes #71223820] Refactor update_required?