Add neutron_port resource

This resource is required to add more than a single router interface to
a neutron network or subnet. By default, using
`neutron_router_interface` to add a second router to a subnet without
first creating a port for it will cause IP conflicts.

This resource can be used to first retreive a non-conflicting ip on a
target network or subnet, then create a `neutron_router_interface` with
the port.

Eg:
```
neutron_router { $tenant:
  tenant_name          => $tenant,
  gateway_network_name => 'public',
  require              => [
    Neutron_network['private'],
    Neutron_subnet[$private_subnet],
  ],
} ->
neutron_port { "${tenant}_private":
  ensure       => present,
  network_name => 'private',
  subnet_name  => $private_subnet,
} ->
neutron_router_interface  { "${tenant}:${private_subnet}":
  ensure => present,
  port   => ${tenant}_private",
}
```

Change-Id: I06a2186224c4c4fb59c6906152fed720c4cfc374
Merge "Add neutron_port resource"