Enable GRE and VXLAN with the same ID

Current packet processing in br-tun is based on tun-id,
as a consequence, two networks using different tunnel
types but sharing the same tun-id would not be properly isolated.

To ensure proper isolation within a single bridge, NORMAL action
can't be used any more as it floods unknown unicasts on all
bridges ports. It is replaced by a learn action that dynamically
sets-up flows when packets are recieved from tunnel ports. As mac
address are learnt in explicit flows (in table 20), we can use a
default action in that table to flood unknown unicasts to the
right set of ports, like broadcasts and multicasts packets.

See https://wiki.openstack.org/wiki/Ovs-flow-logic for a more
detailled explanation of the flow logic

Another alternative could have been to use distinct bridges for
each tunnel type (whithout modifying the current flow logic),
but previous alternative may be preferable as it paves the way
for new tunneling optimisations (like RPC based mac learning and
partial-mesh flooding proposed in bp/l2-population)

Change-Id: I1dfe74f96680c2c6fe4d8d4aac4821c6b020c005
Closes-Bug: #1196963
Add l2 population base classes

This patch initiates the blueprint l2-population

OVS & LinuxBridge drivers will be added as dependencies.

Change-Id: Ia2345aa262ec791c9f38b6e41e1e4b46f69cadac
OVS agent implementation of L2-population

Change-Id: Ibe90f8843e54193b6e5612e9f17892a0dd18a2fd

Conflicts:

	neutron/db/l2population_db.py
	neutron/plugins/openvswitch/agent/ovs_neutron_agent.py