Fixes Hyper-V agent stateful security group rules

Hyper-V does not allow stateful ACLs with "ANY" protocol, meaning that
security group rules which allows "ANY" protocol must be split up
into separate rules for each protocol.
Also, Hyper-V does not allow stateful ICMP rules, which means ICMP rules
must be added both inbound and outbound.

Closes-Bug: #1362676

Change-Id: I0d4a6ebc6023ea616cf92539273b8b36a6b24ae0
Fixes Hyper-V 2008 R2 agent VLAN Settings issue

This issue affects Hyper-V 2008 R2 and does not affect
Hyper-V 2012 and above.

Hyper-V agent now also sets the vswitch external port's
DesiredEndpointMode to TRUNKED and adds the vlan_id in
the external port's TrunkedVLANList.

Change-Id: I632054ad15f33b13616f6fbbe4a637391ba8d374
Closes-Bug: #1361211
Fixes Hyper-V agent port disconnect issue

On Windows / Hyper-V Server 2008 R2, when a switch port
have to be disconnected because the VM using it was
removed, DisconnectSwitchPort will fail, returning an
error code and a HyperVException is raised.

If the VM's VNIC has been removed, disconnecting the
switch port is no longer necessary and the it will
proceed to remove the switch port.

This issue is not present in Windows / Hyper-V Server 2012,
as the switch ports are cleaned automatically.

Closes-Bug: #1374108

Change-Id: I729753c15c51c86655651b132fcf8eab78884eb5