Bring EVPN NLRI support up to the latest draft.

Add support for EthernetSegmentId.
Implement parse and build for all 4 route types.
Implement sanity checks for EVPN NLRI.
Implement PMSI Tunnel attribute.
EVPN interoperability with JUNOS.

Add EvpnManager class to handle translation of a broadcast MAC route
from an agent into a Inclusive Multicast route.  This class also has
glue logic to build an ingress replication OList for each agent.

Use evpn tables instead of enet tables for VRFs.
Implement OriginatorId attribute and set it the same value as nexthop
to work around a JUNOS bug.
Implement Params attribute to store arbitrary parameter flags.
Implement test infrastructure to simulate EVPN PEs that don't support
edge replication.
Tweak XMPP messages to carry a couple of extra fields.

Add unit tests for EvpnManager.
Add new integration tests to bgp_xmpp_evpn_test.cc.
Add new tests to evpn_tables_test.cc.
Add new tests to bgp_attr_test.cc.

Change-Id: I408339cb06627ef1164c37b3e67a9e35e7a5b178
Agent EVPN multicast support

1) Add EVPN composite NH in L2 composite NH.
2) Populate EVPN NH with olist sent by control node.
3) Add changes to support OlistType(xmpp_enet.xsd) for receiving EVPN NH.
4) Create Interface Composite NH for L2 and L3 multicast composites. (L2
   composite = Fabric CNH, EVPN CNH, Interface CNH) and L3 composite = Fabric CNH,
   Interface CNH)
5) Add MPLS label creation for EVPN multicast.
6) Change subnet route nexthop to EVPN composite NH from current discard.
7) Test cases
Remove enet from control-node Sconscript
Further EVPN changes for JUNOS interop.

Fix bug in parsing of Sequence to get PMSI Tunnel atrribute to work.
Add integration tests with 2 BgpServers to bgp_xmpp_evpn_test.cc.
EVPN changes for supporting MX/TOR
Further EVPN changes for JUNOS interop.

Add ethernet-tag field to EnetAddressType in the schema.
Encode and decode ethernet-tag in XMPP messages.
Tweak provision_bgp.py to enable e-vpn on all BGP sessions.
Further EVPN changes for JUNOS interop.

Move evpn multicasts tests to a separate file.
Parameterize tests to take ethernet-tag.
Bug fixes - VNID change and encap handling for evpn multicast, retract on ES when VNID or encap changes.
Merge conflict resolution.
Merge branch 'master' into evpn-devel

Conflicts:
	src/bgp/enet/test/SConscript
	src/vnsw/agent/cmn/agent_param.cc
	src/vnsw/agent/cmn/agent_param.h
	src/vnsw/agent/kstate/test/test_kstate.cc
	src/vnsw/agent/oper/agent_path.cc
	src/vnsw/agent/oper/agent_path.h
	src/vnsw/agent/oper/agent_route.cc
	src/vnsw/agent/oper/inet4_multicast_route.cc
	src/vnsw/agent/oper/inet4_unicast_route.cc
	src/vnsw/agent/oper/layer2_route.cc
	src/vnsw/agent/oper/layer2_route.h
	src/vnsw/agent/oper/mpls.cc
	src/vnsw/agent/oper/mpls.h
	src/vnsw/agent/oper/multicast.cc
	src/vnsw/agent/oper/multicast.h
	src/vnsw/agent/oper/nexthop.cc
	src/vnsw/agent/oper/nexthop.h
	src/vnsw/agent/pkt/test/test_ecmp.cc
	src/vnsw/agent/test/test_multicast.cc
	src/vnsw/agent/test/test_vn.cc
	src/vnsw/agent/test/test_xmpp.cc
	src/vnsw/agent/test/test_xmpp_bcast.cc
	src/vnsw/agent/test/test_xmppcs_bcast.cc
Add multi paths for multicast.
Fix bugs.
Merge branch 'master' into evpn-devel

Conflicts:
	src/vnsw/agent/test/test_l2route.cc
	src/vnsw/agent/test/test_xmpp_bcast.cc
	src/vnsw/agent/test/test_xmppcs_bcast.cc
Merge branch 'master' into evpn-devel
Checkin for supporting multiple paths in route
Merge branch 'master' into ipv6-devel2

Conflicts:
	src/bgp/bgp_xmpp_channel.cc
	src/bgp/enet/test/SConscript
	src/bgp/routing-instance/routing_instance.cc
	src/bgp/rtarget/test/SConscript
	src/bgp/test/SConscript
	src/config/utils/provision_bgp.py
	src/control-node/SConscript
	src/vnsw/agent/controller/controller_peer.cc
	src/vnsw/agent/controller/controller_peer.h
	src/vnsw/agent/oper/agent_route.h
	src/vnsw/agent/oper/multicast.cc
	src/vnsw/agent/oper/vn.cc