Add a validation schema for `vcloud-net-launch`

Schema is based on these sources:

VMWare documentation:
http://pubs.vmware.com/vcd-51/index.jsp?topic=%2Fcom.vmware.vcloud.api.reference.doc_51%2Fdoc%2Findex.html

The 'orgVdcNetwork' generator in Fog:
https://github.com/fog/fog/blob/master/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb

vCloud Core's `org_vdc_network.rb`:
https://github.com/gds-operations/vcloud-core/blob/master/lib/vcloud/core/org_vdc_network.rb
Specify edge gateway for all tests

Specify the edge gateway for all integration tests that use the
`generate_data_file` method.

The edge gateway is not required for 'isolated' network types, but we
pass it anyway. This avoids an issue whereby the schema validation was
failing because `edge_gateway` returned `nil` because no value was set
in the YAML file:

```ruby
> YAML::load('edge_gateway:')
=> {"edge_gateway"=>nil}

> YAML::load('edge_gateway: ')
=> {"edge_gateway"=>nil}

> YAML::load('edge_gateway: ""')
=> {"edge_gateway"=>""}
```

Also, rename the `edgeGateway` ERB variable to `edge_gateway` for
consistency.
Use `let` rather than `let!` in Rspec tests

After discussion with @dancarley (who committed this code in
96441e5f6d26778f983dcdc63efd7c1df8638ba2), I can't see any reason for
these `let!` declarations not to lazy-load using `let` (without the
trailing exclamation mark).

The tests also pass without the exclamation mark.
DRY up spec tests using `let`