trickle: separation of rpl and trickle

This PR introduces trickle as an independend module.
Currently, trickle is toothed together 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.