new workqueue and delayed work implementation.

Separated workqueue from delayed work.
Immediate works are now implemented using pipe.
Work and delayed work handles are now member of the structures containing them
and not allocated at runtime.

Signed-off-by: Shlomo Pongratz <shlomop@mellanox.com>
Signed-off-by: Eyal Salomon <esalomon@mellanox.com>
new workqueue and delayed work implementation kernel.

commit d24d09b8f6a0fa44ee7c07d4be4f488824a9ddf1
named new workqueue and delayed work implementation,
changed the workqueue and delayed work implementation and
API for user space. This patch implemets the equivalent
changes for the kernel version.

Signed-off-by: Shlomo Pongratz <shlomop@mellanox.com>