InterfaceTable: find connected network layer (NL) by NL's gates that need to be called ifIn/ifOut

The code committed in this patch was the solution before 2012-04-12,
when it was changed to check upperLayerIn/upperLayerOut gates of the
NIC module; however that's not so so good because we need to store
the gate index of the gate of the *network layer*.

This patch reverts to original behaviour; allows NICs not connected to
a network layer; and provides better diagnistics.

ASSUMPTIONS:
 1. The NIC module (ifmod) may or may not be connected to a network layer module (e.g. IPv4NetworkLayer or MPLS)
 2. If it *is* connected to a network layer, the network layer module's gates must be called
    ifIn[] and ifOut[], and NIC must be connected to identical gate indices in both vectors.
 3. If the NIC module is not connected to another modules ifIn[] and ifOut[] gates, we assume
    that it is NOT connected to a network layer, and leave networkLayerGateIndex
    in InterfaceEntry unfilled.
 4. The NIC may or may not connect to gates of the containing host compound module.