[RFC] add olsr2 routing algorithm 

This adds an implementation of the OLSRv2 routing protocol (without metrics), based on oonf_api.
The interface offered to applications currently consists of only a `olsr_init` function which will set up and start a sender and receiver thread for RFC5444 based (UDP on port 269) HELLO and Topology Control messages.
That means that every `HELLO_REFRESH_INTERVAL` (2s + random jitter) a non-forwarded HELLO message is send for neighborhood discovery. Every `TC_REFRESH_INTERVAL` (5s + random jitter) a topology control message is broadcast (only by selected flooding MPRs) through the network.

This happens transparent to the application, IP packets are now routed to known hosts within the MANET once a path has been established. 

`print_topology_set` will output the forwarding table with all known mesh nodes.

Does work well on native with #680, but still crashes on the testbed after some time.
Each known MANET router requires 72 byte of memory + 12 bytes for each alternative route to the node.

Depends on #630
This struct violates your specification in slist.h:

> A list entry is a struct of an arbitrary type but with the only constraint that it's first entry is a pointer of the same type as the struct with the name next.

where

```c
struct avl_node {
  struct list_entity list;
  …
};
struct list_entity {
  struct list_entity *next;
  struct list_entity *prev;
};
```

Thus I don't understand the use in node.c. Are you implementation a singly linked list whilst oonf already knows and uses doubly linked lists?

The extensive use of type casting makes the intention of the nodes unclear to me.