Implements ADD-PATH extension for BGP.

Allows to send and receive multiple routes for one network by one BGP
session. Also contains necessary core changes to support this (routing
tables accepting several routes for one network from one protocol).
It needs some more cleanup before merging to the master branch.
Implements OSPF stub router option (RFC 3137).

Also fixes OSPFv3 routing table calculcation w.r.t.
errata 2078 to RFC 5340.
Fixes problems with kernel routes multiple routing tables.

Temporary dummy routes created by a kernel protocol during routing table
scan get mixed with real routes propagated from another kernel protocol
through a pipe.
Better packet priority and traffic class handling.

Implements support for IPv6 traffic class, sets higher priority for OSPF
and RIP outgoing packets by default and allows to configure ToS/DS/TClass
IP header field and the local priority of outgoing packets.
Implements TTL security for OSPF and RIP.

Interfaces for OSPF and RIP could be configured to use (and request)
TTL 255 for traffic to direct neighbors.

Thanks to Simon Dickhoven for the original patch for RIPng.
Documentation for TTL security.
Makes krt.c much more readable.
Implements multiple routing table support for FreeBSD and OpenBSD.

Inspired by the patch from Alexander V. Chernikov.
Implements 'bgppath ~ int set' filter op.
Some fixes for TTL security.
Fixes stuck connection during BGP session shutdown.

If TX buffers were full during BGP session shutdown
then a protocol waited indefinitely to be able to
send notification packet to close the session.
Fixes bug in protocol flushing and rtable pruning.

When route was propagated to another rtable through a pipe and then the
pipe was reconfigured softly in such a way that any subsequent route
updates are filtered, then the source protocol shutdown didn't clean up
the route in the second rtable which caused stale routes and potential
crashes.
Fixes socket error hook for radv protocol.
Fixes header file name.

Thanks to Fritz Grimpen for the patch.
Implements eval command and minor CLI cleanups.

Implemented eval command can be used to evaluate expressions.

The patch also documents echo command and allows to use log classes
instead of integer as a mask for echo.
Implements RFC 6608 Subcodes for BGP FSM Error.
Allows to define constants of all filter types.
Fixes initial random values for function arguments.

Thanks to Javor Kliachev for the bugreport.
Documentation update.
NEWS and version update.