Provide way to reserve dhcp port during failovers

This change provides a way to save the dhcp port when failing
over a network from one dhcp agent to another.  When a
dhcp-agent-network-remove is issued, the dhcp port device_id is
marked as reserved which causes it to not be deleted. When a
subsequent dhcp-agent-network-add is issued, the reserved port
is used and the device_id is corrected.  This is desirable
in order to maintain the dhcp port ip address so that dns doesn't
get impacted. Unit test added.

Closes-Bug: #1288923
(cherry picked from d5c0a37999f9e3a611a322baacabebc06b13283b)
Conflicts:
	neutron/common/utils.py
	neutron/tests/unit/test_db_plugin.py

Change-Id: I531d7ffab074b01adfe186d2c3df43ca978359cd
Merge "Provide way to reserve dhcp port during failovers" into stable/icehouse