Apply host routes using Interface Route Table

This patch creates interface route table and links to
the port object (port_obj.add_interface_route_table)
for the host routes defined for the subnet.

Eg. Suppose a subnet with 10.0.0.0/24 has below host
routes defined (either during subnet create or subnet update)
 destination = 12.0.0.0/24, nexthop=10.0.0.2
 destination = 14.0.0.0/24, nexthop=12.0.0.4 (indirect route to 10.0.0.2)
 destination = 16.0.0.0/24, nexthop=10.0.0.4

 When a port is created with ip - 10.0.0.2 then
 a InterfaceRouteTable is created with prefixes - 12.0.0.0/24
 and 14.0.0.0/24 and added to the port object

 When a port is created with ip - 10.0.0.4, then
 a InterfaceRouteTable is created with prefix - 16.0.0.0/24
 and added to the port object

when the subnet is updated with new host routes, then previous
interface route tables are deleted or updated and new interface
route tables are created if the ports already exists.

This feature is enabled only when the 'apply_subnet_host_routes' is
set to True in the configuration file - api_server.conf

Resolved the conflicts and incorporated review comments
from Sachin

Change-Id: Idab495f0b384385dbf5faeb72f2093783ca370d6
Merge "Apply host routes using Interface Route Table"