Fixing bug in waitqueue, another timer handling issue.
If waitqueue was prepared to wait with timeout but timeout burn off before task
reached waitqueue_wait() call then task_current->timer will be leaved in !=
NULL. In that case next call of waitqueue_prepare() will fail while it will try
to create timeout timer (internal assert will detect that)