Omit port['host_name'] if no value is given

Host port is optional, so we shouldn't pass it to the API if the user does not specify a value.

[fixes #79313728]
Since this is more than a one-liner now, we can probably re-jigger it a bit to make it more efficient. Something like:
```
unless port['_deleted'].to_s == '1'
  excludes = ['id']
  excludes << 'host_port' if port['host_port'].blank?
  memo << Port.new(port.except(*excludes))
end
```