EdgeGateway LoadBalancer generator working for Pools

Relatively complete input syntax to Fog/vCloud load balancer pools section.

This still needs validating against a live instance though - the output section
of the test is mostly correct, but needs confirmation and refinement.
EdgeGateway generator working for VirtualServer

not entirely complete, but enough until we can validate test output against API
Look up EdgeGateway details for VirtualServer

We are provided with the network id, since this is definitely unique.

The API (and diff) requires we pass the network name too though, so look this up.
Test top-level defaults for LoadBalancerService

As per FirewallService, we wish to be clear on the behaviour when
empty input is provided.
Add tests for default output for VirtualServer

Specifically for IsEnabled and Description, but also adding a test
for the complete output for a minimal-config entry.
Fix NilClass exception

as :service section of input can be unspecified, so we must handle it
LoadBalancer Pool default tests

Really just checking for :Description being set here, but also
documenting the complete 'default input produces' output.
Clarify test case contexts
Strip overly verbose input/output VSE data into files

The purpose of the LoadBalancerService generator is to take
viable input configurations and convert them to the exact data
structure returned by the get_edge_gateway Fog call. We need to be
confident that this process is working in entirety.

However, unlike the Firewall and Nat checks, the output format is
extremely verbose, so would massively clutter up the test file.

This commit pulls the current single HTTP load balancer test input/output
data out into separate serialized YAML files.
Add HTTPS-based LoadBalancerService generator test

The load_balancer_https-output.yaml file was generated from a
live load balancer EdgeGateway, configured via the UI.

The load_balancer_https-input.yaml file was created manually to match.

Tests for this are currently failing, since there are assumptions in the
generator that are not marrying to the actual API. These will be fixed in
subsequent commits.
Re-order Interface hash for LoadBalancer

The :type parameter appears first in the hash when retrieved
from the API.

Not vital for operation, as HashDiff accounts for re-ordering of hashes,
but tests are failing due to the hash order being wrong.
Handle persistence method for LoadBalancerService

Working at least for SSL_SESSION_ID persistence method.

May require further development to support cookie based for HTTP
LoadBalancer URI is only reqd for HTTP

The LoadBalancerService HealthCheck URI is only specifiable
for HTTP services.
LoadBalancer default ports are always specified

The UI by default will create port entries for disabled and
enabled services.

Make our code mirror this behaviour.
LoadBalancer HealthCheckPort is empty by default.

As per UI-created HTTPS load balancer pool/VS, the HealthCheckPort
field is blank by default.
Remove confusing comments from test data file

These comments are largely out of date and are not useful here.
Add another LoadBalancer generator test case

This time, with a particularly complex multi-protocol Pool and
corresponding VirtualServer.

This test currently fails, will be adding fixes to generator code and
test logic in further commits.
LoadBalancer Pool description is optional

If a description is not set, we should not send one.
LoadBalancer pool weight fix

Pool weight should be a string, despite being specified as an
integer.
LoadBalancer HeathCheckPort fix

Value must be a string, though we allow specification of it
as an integer in source config