Refactor vcloud_pool_healthcheck_entry array

Refactor vcloud_pool_healthcheck_entry array to remove the default_mode
variable.

Given that all other defaults are defined line-by-line, I don't see why
the `:Mode` key should be any different.
Don't set healthcheck URI for non-HTTP checks

Don't set a healthcheck URI for non-HTTP load balancer healthchecks.

In vCloud Director version 5.1 and 5.5, VMWare does not support a
healthcheck URI for SSL healthchecks[1]. In vCloud Director version 5.5,
a load balancer will refuse connections if a health check URL is set for
an SSL healthcheck.

TCP healthchecks obviously do not support a healthcheck URI given they
do not operate at layer 7.

This also fixes an issue related to
ecfba3960d8ae44169af81afd36647926226de15; that commit checks for a pool
service protocol of HTTP and sets the healthcheck URL accordingly. The
changes there did not however account for configurations where the pool
uses HTTP as the service protocol but TCP for the healthcheck.

The logic here is necessarily complex because we deal with:
  - defined configuration versus the default
  - healthcheck protocols (default or defined) versus service protocols

Raise an exception if a healthcheck URI is specified for a load
balancer healthcheck using any protocol other than HTTP.

Also adds tests for the above behaviour:

  - Add a spec test to ensure that the default URI for healthchecks
    using the HTTP protocol is '/'. The behaviour we are testing for was
    implemented in e9c524b42397121d232667ba29d6739bbba63091.

  - Add a spec test to ensure that the default URI for healthchecks
    using the HTTPS protocol is ''. The behaviour we are testing for was
    implemented in e9c524b42397121d232667ba29d6739bbba63091.

  - Add a spec test to ensure that the default URI for healthchecks
    using the TCP protocol, when the load balancer service protocol is
    'HTTP', is ''. The behaviour we are testing for was implemented in
    this same commit.

  - Add two spec tests that expect an exception to be raised if we
    attempt to define a healthcheck URI for a TCP or HTTPS healthcheck.
    Only HTTP healthchecks support a healthcheck URI. The behaviour we
    are testing for was implemented in this same commit.

[1]:
http://pubs.vmware.com/vcd-55/topic/com.vmware.vcloud.admin.doc_55/GUID-C12B3954-155F-48AF-9855-E0DE026752D0.html
Version 0.5.0

Bump version to 0.5.0 and update CHANGELOG to account for changes to the
default healthcheck URIs for load balancer services.

Increment the minor version (rather than the major) because these
changes could cause exceptions to be raised on existing configurations
if they set a healthcheck URI on a non-HTTP healthcheck.
Healthcheck port is optional

Correct comment in `load_balancer_http-input.yaml` to state that the
healthcheck port is optional as per:
https://github.com/alphagov/vcloud-edge_gateway/blob/e0c3685fc51b8b52de4871c7d314b86fe640c212/lib/vcloud/edge_gateway/schema/load_balancer_service.rb#L10
Remove unnecessary call to `default_port()`

`default_port(mode)` was already called on line 83. Since `mode` does
not change for the rest of this function, remove the unnecessary call.
Healthcheck port is optional

As per commit 1d515dc6a4d6ac7d48c13ef6c2843f6dbd5bdd6a, but for the two
files introduced in e8e0eef9eea10ec53ba868c67e316220de9a877c.

Correct comment to state that the healthcheck port is optional as per:
https://github.com/alphagov/vcloud-edge_gateway/blob/e0c3685fc51b8b52de4871c7d314b86fe
Be explicit about service port being tested

In the load balancer spec tests, we make assertions against the
`:ServicePort` array in the generated configuration.

In order to match the appropriate service port to the load balancer
service protocol being tested, we have to specify the array key by its
index.

To make it more obvious exactly what service port we are targetting,
add a new variable for the service port we are targeting and refer to
it in our assertions.

This does not change the functionality of the tests but makes them more
readable.
Merge pull request #65 from alphagov/71128590-healthcheck-uri

[#70844644][#71128590] Don't set healthcheck URI for non-HTTP checks