Cisco nexus plugin fails to untrunk vlan if other hosts using vlan

Without this fix, if two or more compute hosts have
instances which are
sharing a given VLAN on a Nexus switch, and then
all instances on one of the hosts which are using that
VLAN are terminated, while instances which are using
that VLAN on other hosts remain active, then
the VLAN is not being untrunked from the
corresponding interface on the Nexus switch as
expected.

This fix changes the VLAN removal logic from:
----If this the last instance using this VLAN on this switch:
--------untrunk the vlan from the switch interface
--------delete the VLAN from the switch
To:
----If this the last instance using this VLAN on this switch interface:
--------untrunk the vlan from the switch interface
--------If this the last instance using this VLAN on this switch:
------------delete the VLAN from the switch

Note that this bug also exists in the Cisco ML2
mechanism driver, but the code which implements
this is being redesigned, so it will be addressed for
the ML2 separately.

Closes-Bug: #1246080

Change-Id: Icb1f95d1db4baa56c0f6fd68ce6342bbff27641d
(cherry picked from commit a0a462f0303f68d885ff344898437e310c64188c)
Add request timeout handling for Mellanox Neutron Agent

Add request timeout handling for messages sent to eswitch Daemon.
Using configurable number of retries and increasing waiting interval
between retries resend the message.
If request timeout persists, eswitch daemon is not reachable.
In such case, exit the agent process.

Closes-Bug: #1228827

Change-Id: If1290bedafe7a0dd8a61cbe328510075edeb1e5b
(cherry picked from commit 793c76344715790531d39436508b188b536e2ff5)
Merge "Cisco nexus plugin fails to untrunk vlan if other hosts using vlan" into stable/havana
Merge "Add request timeout handling for Mellanox Neutron Agent" into stable/havana