trickle: separation of rpl and trickle
This PR introduces trickle as an independent module.
Currently, trickle is interleaved with rpl, which means that
trickle is not usable by other protocols than rpl.
Trickle's implementation would not work properly even for rpl if multiple dodags
were used, since it is only possible to initialize just one trickle
timer.

In this PR I introduce a `trickle_t` struct holding the state of one
trickle thread. Thus, it is possible to initialize several trickle
timers, each for one dodag or even for other protocols than rpl.
The function and the appropriate arguments to be executed by trickle
are passed in a generic way through an `trickle_callback_t` struct.

During the refactoring I was able to eliminate one of trickle's threads.
trickle: changed the trickle implementation to be a single thread,
handling multiple trickle counters via the message API.
I also added trickle to auto_init
rpl: merged routing table and dao thread into one
added missing pid assignment
rpl: RPL/Trickle with only *one* thread

This PR is *based* on my previous work in PR #1839
and proposes an approach to reduce the thread count of RPL.

The current RPL/Trickle stack needs about 5 threads to handle tasks
like updating the trickle timer, routing entries and the transmission of
DAOs.

This PR modifies RPL to use only one thread with a looped `msg_recv()` call.
The message is then multiplexed to the right task.
deleted unnecessary variables
rebased for #2162, implemented a better logic to distinguish msg_ts
cleanup
doc for trickle.h
more doc for trickle.h
control to limit number of events for lifetimes
remove any pending events when leaving dodag
moved rt_time and rt_timer out of rpl_dodag_t
Merge pull request #1 from cgundogan/rpl_one_thread

Rpl one thread