NSX: ensure dhcp port is setup on metadata network

Change in scheduling behavior caused a regression
where the dhcp port is no longer provisioned on
the (admin) metadata network created when a subnet
is uplinked to a router.

This change recovers the past behavior and extend UT
coverage to avoid further regression.

Closes-bug: #1304127

Change-Id: I8420203f68a43368f3784adb0c4cbbe55f048662
(cherry picked from commit 4cb3eb2a98246f28f8016cfe32946d365203fbae)
Validate CIDR given as ip-prefix in security-group-rule-create

There was no validation for the provided ip prefix. This just adds
a simple parse using netaddr and explodes with appropriate message.
Also makes sure ip prefix _is_ cidr (192.168.1.1-->192.168.1.1/32).

Validation occurs at the attribute level (API model) as well as at
the db level, where the ethertype is validated against the ip_prefix
address type.

Unit test cases added - bad prefix, unmasked prefix and incorrect
ethertype. Also adds attribute test cases for the added
convert_ip_prefix_to_cidr method

Closes-Bug: 1255338

Conflicts:
	neutron/tests/unit/test_security_groups_rpc.py

Change-Id: I71fb8c887963a122a5bd8cfdda800026c1cd3954
(cherry picked from commit 65aa92b0348b7ab8413f359b00825610cdf66607)
netaddr<=0.7.10 raises ValueError instead of AddrFormatError

This patch ensures that ValueError is also caught in addition to
AddrFormatError as in netaddr>=0.7.11 AddrFormatError is raised and
in netaddr<=0.7.10 ValueError is raised.

Change-Id: I595c90e42129a2d365f3860e3042e826bd031365
Closes-bug: #1308675
(cherry picked from commit dd2ccd12adfb6c7d4aa500ba4120f767beeed35c)
Merge "NSX: ensure dhcp port is setup on metadata network" into stable/icehouse