throttle: Add throttle group infrastructure.

The throttle_group_incref increment the refcount of a throttle group given it's
name and return the associated throttle state.

The throttle_group_unref is the mirror function for cleaning up.

Signed-off-by: Benoit Canet <benoit@irqsave.net>
throttle: Add throttle group infrastructure tests

Signed-off-by: Benoit Canet <benoit@irqsave.net>
throttle: Prepare to have multiple timers for one ThrottleState

This patch transform the timer_pending call into two boolean values in the
ThrottleState structure.

This way we are sure that when multiple timers will be used only
one can be armed at a time.

Signed-off-by: Benoit Canet <benoit@irqsave.net>
throttle: Add throttle group support.

Signed-off-by: Benoit Canet <benoit@irqsave.net>