Fix bug when starting ldpd with a configured interface in the down state

If a given interface is down at startup, don't promote it to the ACTIVE
state.
Use nonblocking connect

When the ldpe process calls connect(), it doesn't regain control until
either the connection is made or an error occurs. The time the process
is blocked can be significantly large to the point of other LDP sessions
being torn down because of their holdtime. Besides that, the ldpctl
program gets unresponsive if the ldpe process is blocked. Fix these
issues by using a non-blocking connect.
Remove unused definitions
Always advertise the Router-ID as the transport address

RFC 5036 - Section 2.5.2 says:
	"An LSR MUST advertise the same transport address in all
	 Hellos that advertise the same label space. This requirement
	 ensures that two LSRs linked by multiple Hello adjacencies
	 using the same label spaces play the same connection
	 establishment role for each adjacency".

To satisfy this condition, always advertise the Router-ID as the
transport address by using the "IPv4 Transport Address" TLV in the
generated Hello messages.
Don't set the Message ID for hello messages

The Message ID field is used by notification messages to identify a
given message.

According with RFC 5036 - section 3.5.1.2.1, malformed LDP PDUs or
messages that are part of the LDP Discovery mechanism are handled by
silently discarding them. With that said, there's no need to set the
Message ID field for hello messages.

This is the behavior adopted by Cisco IOS.
Rename event/actions in the discovery FSM to avoid confusion

After returning from accept, we got a TCP connection not a LDP session.
Do the following renamings to avoid confusion:

* NBR_EVT_SESSION_UP -> NBR_EVT_CONNECT_UP
* NBR_ACT_SESSION_EST -> NBR_ACT_CONNECT_SETUP
* nbr_act_session_establish -> nbr_act_connect_setup
* NBR_ACT_INIT_SEND -> NBR_ACT_PASSIVE_INIT
Fix small glitch in the initialization FSM

* After sending a keepalive message in the OPENSENT state, we must move to
  the OPENREC state and wait for a keepalive before considering the
  session as established;

* Rename NBR_ACT_STRT_KTIMER to NBR_ACT_SESSION_EST;
Use the nbr_stop_[*]timer functions
Don't allow enabling LDP on loopback and carp interfaces

LDP should be allowed only on physical or tunnel interfaces.
Drop support for passive interfaces

Support for passive interfaces was inherited from ospfd but it doesn't
make any sense at all for ldpd.
Drop support for per-interface labelspaces

Support for per-interface labelspaces is only necessary for legacy ATM
interfaces running in cell-mode. We shouldn't worry about this.
Improve error handling on session_read

* Don't try to send a Shutdown message if the connection is already
closed or a read error occured;

* As per RFC 5036, send a Shutdown message if an unexpected message is
received during the initialization process;

* Check if the whole LSR ID of received messages is correct;

* On ldpe_dispatch_main(), ignore the messages from the lde process
whose associated neighbor is not in the operational state.
The keepalive timeout should be configured on a global basis and not per interface

* Remove the iface pointer from the 'nbr' structure because it's not
needed anymore.
Restart the keepalive timer whenever a LDP PDU is sent
Restart the keepalive timeout whenever an Address message is received

The keepalive timeout is already restarted when messages from other
types are received.
Log kernel messages in super verbose mode
Advertise the implicit-null label for routes attached to loopback interfaces

This is necessary in order to guarantee PHP behavior when we are in the
edge of an MPLS network.

Note: without this patch LDP won't work if the 'fib-update no' command is
set. The LDP neighbors will send labeled packets to our loopback address
which will be discarded since the daemon is not feeding the kernel.
Fix bug in the fib-update command

The "fib-update" directive wasn't accepting "no" as an option.
Remove the IMSG_NEIGHBOR_CHANGE message

Unlike OSPF, LDP has no concept of intermediate states. A session is
either operational or not operational as far as the label distribution
engine (lde) is concerned. In this case, the IMSG_NEIGHBOR_UP and
IMSG_NEIGHBOR_DOWN messages are enough.
Minor adjustments in the startup of the lde and ldpe processes

The 'ldpd_process' variable should be set as soon as possible in the
initialization of each process. In that way if something goes wrong in
the initialization we will know in which process the problem happened.