Fix router ID printing.

format_address() will print 16 octets, but a router ID is only 8 octets long.
Thank's to Dave Taht for noticed the bug.
Filter: Rename "result" to "add_metric".

The field "result" is in fact an additional cost.
Add function to compare prefixes, with an enumeration.
Kernel-side implementation of source-specific routing.

Since the linux kernel isn't able to use the source address in
routes, we emulate it using multiple routing tables and
associated rules.
Implement table rules changes with netlink.
Change data structures and related functions to hold source prefixes.
Add a message type for source-specific routes.

This adds a new message type, parses it when receiving
and formats it when sending.

This also try to deal with request. No source-specific
request exists: a router which receive a request for
a route should send every installed routes that
satisfied the destination. This explain some ugly
pieces of code.
Fix interoperability with non-ss routers.

If we change the buffered destination prefix or router ID
in a ss-update TLV, then next update TLVs will depends on
it.  This cause some interoperability problems in some
cases, and can cause wrong messages in others.

The current solution should not be definitive: we should
send all non-source-specific update in group, but the
announce-with-default-source-prefix option introduce
non-source-specific updates.
Improve route printing with "from" field.
Add local interface source-specific printing.

It also update the route's id.
Add options to control the table and priority numbers.
Add filter to match source addresses.

Add 3 new options to configuration and manpages:
src-ip, src-eq, src-le and src-ge.
Set the source prefixes through filters.

Since it's a route attribute, it fits better there.
Add TLVs for source sensitive requests.
Add API function to research some routes, or approximations.
Export metric_to_kernel().
Add disambiguation algorithm.
Add const modifiers.
Use the disambiguation algorithm.
kernel_netlink: take IPV6_SUBTREES into account.

The linux kernel should be able to deal correctly with source-sensitive ipv6
route entries since 3.11 (when it is configured with IPV6_SUBTREES).  This patch
modify the kernel so that ipv6 route entries sent into the kernel are not pushed
in a different routing table.

The behavior for v4 doesn't change.