ARP: minor code cleanup
.gdbinit adjusted
tests: added Ieee80211 carrier sense tests.

Covers mutual transmissions for in range and out of range,
synchronized and delayed scenarios.
ARP: factored out an IARPCache
IPv4Address: rename getBroadcastAddress() to makeBroadcastAddress()

Also: added getNetworkBroadcastAddress() to IPv4InterfaceData
MACAddress: added makeMulticastAddress()
Ieee802Ctrl.inputPort renamed to interfaceId
IPv4: routing table: added a new route check
IPv4/IPv6: renamed IPvXAddress to Address, RoutingTable to IPv4RoutingTable, etc.

IPvXAddress          -> Address
IPvXAddressResolver  -> AddressResolver
IRoutingTable        -> IIPv4RoutingTable
RoutingTable         -> IPv4RoutingTable
RoutingTable6        -> IPv6RoutingTable
RoutingTableAccess   -> IPv4RoutingTableAccess

Conflicts:
	src/applications/dhcp/DHCPClient.cc
	src/applications/dhcp/DHCPServer.h
	src/applications/generic/IPvXTrafGen.cc
	src/applications/generic/IPvXTrafGen.h
	src/applications/generic/IPvXTrafSink.h
	src/applications/pingapp/PingApp.cc
	src/applications/pingapp/PingApp.h
	src/applications/pingapp/PingTestApp.h
	src/applications/tcpapp/TCPEchoApp.cc
	src/applications/udpapp/UDPBasicApp.cc
	src/applications/udpapp/UDPBasicApp.h
	src/applications/udpapp/UDPBasicBurst.cc
	src/applications/udpapp/UDPVideoStreamSvr.h
	src/applications/voip/SimpleVoIPSender.h
	src/linklayer/ext/ExtInterface.cc
	src/linklayer/ext/ExtInterface.h
	src/networklayer/autorouting/ipv4/IPv4NetworkConfigurator.cc
	src/networklayer/ipv4/IPv4.cc
	src/networklayer/ipv4/IPv4RoutingTable.h
	src/networklayer/ipv6/IPv6RoutingTable.h
	src/networklayer/ospfv2/OSPFRouting.cc
	src/networklayer/ospfv2/OSPFRouting.h
	src/nodes/inet/NodeBase.ned
	src/nodes/mpls/LDP_LSR.ned
	src/nodes/mpls/RSVP_LSR.ned
	src/transport/rtp/RTP.cc
	src/transport/rtp/RTP.h
	src/transport/rtp/RTPHost.ned
	src/transport/tcp/TCP.h
	src/transport/tcp_lwip/TCP_lwIP.h
	src/transport/tcp_nsc/TCP_NSC.h
IPv4/IPv6: dynamic registration of upper layer protocols; merge IPv?NetworkLayer's transport gates

TCP, UDP, SCTP, RSVP, OSPF, MANET are all merged into transport gates.
Network user modules must register their protocol number by sending
an IPRegisterProtocolCommand from initialize.

Introduced an IPSocket class that wraps the registration process.

Conflicts:
	src/networklayer/ipv4/IPv4.cc
	src/networklayer/ospfv2/OSPFRouting.cc
	src/transport/tcp/TCP.cc
	src/transport/udp/UDP.cc
IPv4/IPv6: rename and move NetworkLayer and NetworkLayer6

- NetworkLayer was renamed to IPv4NetworkLayer and moved into src/networklayer/ipv4
- similar change for IPv6

Conflicts:
	src/nodes/inet/NodeBase.ned
	src/nodes/mpls/LDP_LSR.ned
	src/nodes/mpls/RSVP_LSR.ned
	src/transport/rtp/RTPHost.ned
Address: rename isIPv6() to getType()

In preparation for generalizing Address in the next commits
BIG REFACTORING -- details below

Motivation: allow uniform access to the IPv4, IPv6 and possibly other routing tables;
e.g. some wireless networks may use MAC address as network address. Also, in
simulation it sometimes makes sense to work with simple abstract addresses like
module names, indices or IDs.

Being able to uniformly access routing tables containing different types of
addresses makes it possible to implement routing protocols in generic way.
I.e. the same DYMO module can work with IPv6, IPv6, MAC and other addresses
without change and recompiling.

Ingredients of this patch:
- generic Address class that can hold all kinds of addresses (=union)
- interfaces for generic access: IRoutingTable, IRoute, INetworkDatagram, etc.
- Ping refactoring (use generic addressing instead of hardcoded IPv4+IPv6)
- merged routing table change notification constants for IPv4 and IPv6

Conflicts:
	src/applications/pingapp/PingApp.cc
	src/networklayer/ipv4/IPv4RoutingTable.cc
	src/networklayer/ipv6/IPv6RoutingTable.cc
	src/nodes/inet/NodeBase.ned
introducing routingTableModuleName parameter -- TODO half-cooked!

- attempt is to get rid of the *Access classes, this time only for routing tables
- parameter name should rather be routingTableModule
- problem is e.g. IPv4AddressConfigurer -- how should it know where to find routing tables of hosts??
IPv4: implemented netfilter, ported MANET protocols to use it
Address: new address types: MACAddress, ModuleIdAddress, ModulePathAddress; NOTE:

NOTE: does not compile without the GenericXXX stuff which will be
introduced in a later commit -- move this commit after that one?
ARP: refactoring: ARP is now next to the IPv4 module not below it; see TODO below!

Motivation:
 - performance improvement (datagrams no longer go through ARP)
 - conceptually better (packets to PPP no longer flow through ARP)
 - more consistent with how IPv6 and NeighbourDiscovery are organized

TODO:
 - update NED docu of both ARP and IPv4!
 - proxyARP is now both in IPv4 and ARP??
 - refactor ARP gates: netwIn/netwOut/arpResIn (all connecting to IPv4 though)
 - note: IPv4RoutingDecision is now only effectively used on the ip-->arp connection
added GlobalARP: TODO docu! has wrong gates now!
added GenericNetworkProtocol & co.
added MultiNetworkLayer