handling different scenarios in Natting

- accepting network_id from user instead of network_name. IDs are uniq,
  network_names can cause conflicts.
- loading gateway_interface which can be uplinked provider network or
  inetrnal orgVdcNetwork by querying edge-gateway.
- handling hair-pin nattingi(where an external IP address provided by a
  NAT is requested by a node that lives behind the NAT, resulting in packets
  which come from inside the VDC, reach the NAT, and are directed back
  into the VDC)