hdl/dev_io/dev_io_core.c: change to sematic sizeof

Using the derefenrced pointer in a sizeof is more
generic and avoids a mismatch problem if we change
the type of the pointer
hal/dev_io/dev_io_*: add new interrupt error
hal/dev_io/dev_io_core.*: add new poll methods

There are 2 new methods for doing the polling on
dev_io sockets. They are named devio_poll2_all_sm ()
and devio_init_poller2_sm () to differentiate from
the old methods and it performs a balanced polling.
For now, both of them are going to coexist. In the
future the old methods might be removed.
hal/dev_io/dev_io.c: use new poll API

The new poll API have the advantage that it is
balanced. So, even if one socket gets more mesages
(requests) than the other, they both get served in a
fair round robin algorithm.

This commit together with 3759861f fixes issue #13.
hal/include/hal_varg.h: move variable macros to new file

This will allow for ease reuse of the variable
argument macros expansion
hal/sm_io/*/rw_param.h: remove redundant macros

They are now in a separated file located in
"hal/include/hal_varg.h"
hal/include/hal_assert.h: add optional error setting

Now, we can set an optional error (already declared)
variable. This is useful when return errors through
multiple subsystems, where error conversion is
necessary.
various: add variable arguement ASSERT macros

This is bad! I had to add the variable arguement list
to all files that used the ASSERT macros in rder to support
the ioptional variable setting. There is a need to fix this
properly.

This is the first commit towards fixing issue #15.
hal/*: convert error handling to a more unified approach

Now, whenever possible we use the new error handling,
in which we can set an error variable inside the ASSERT
macros. This should easy the code maintainability.

This, together with commit f1a961df fixes issue #15.
kernel/drivers/pcie/*: add missing udev rules
Merge branch 'proposed-master'