Currently, `net/route.h` contains mixture of 3 different definition types: 1) routing socket structures (`rt_msghdr`), 2) common macro/structures used in the datapath (`struct route`, `RO_NHFREE`) and 3) some kernel routing notification definitions (`rt_ifmsg`, `rt_routemsg`).
With the recent Netlink introduction, routing socket stopped to be the sole provider of the network-related information.
Additionally, there are other network-control-related headers such as `net/route/route_ctl.h`, `net/route/nhop.h` which group the definitions of related functionality.
The intent of this change is to clean up `net/route.h` from most of the kernel bits, by moving them to dedicated places.
In the end `net/route.h` should only have rtsock-specific definition.
Specifically,
* nexthop flags are moved to `net/route/nhop.h`
* network control functions are moved to `net/route/route_ctl.h`
* datapath-related functions are moved to the newly-created `net/route/route_fib.h`