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.