hal/msg/*/*_zmq_server.c: fix wrong argument size
hal/msg/msg_macros.h: new generic message macros

Now, all of the message types (exp and thsafe, for now) use
these macros to define their own.
hal/msg/exp_ops/*_zmq.h: use new generic message macros
hal/msg/exp_ops/exp_msg_zmq.c: remove unsued HAL macros
hal/msg/smio_thsafe_ops/*: add THSAFE macros in a new file

Also, created a new "guess" function for determing what message
we are dealing with (exp or thsafe).
hal/sm_io/sm_io_err.*: add new "wrong argument" error
hal/hal_utils/*_table.c: add support for THSAFE message

With this, we can, soon, unify SMIO and DEVIO to use the
same message system. This is another step towards the github
issue #31.
hal/msg/smio_thsafe_ops/ops.mk: update makefile
hal/hal_utils/hal_utils.mk: update makefile
hal/msg/msg.*: add new unified message system

Now, both SMIO and DEVIO can share the same code
to its dispatch funtions.
hal/msg/msg_err.*: add messaging errors
hal/msg/exp_ops/exp_ops.*: remove redundant files

More generic versions of these functions are now
available in msg.c and msg.h files
hal/sm_io/rw_param/rw_param.*: remove redundant functions

These functions were moved to msg.c and msg.h files
as they serve to the new messaging layer (msg.c anm msg.h
files)
hal/msg/msg.mk: update makfile
hal/msg/exp_ops/ops.mk: update makefile
hal/sm_io/sm_io.*: use new messaging layer
hal/sm_io/sm_io_bootstrap.c: add message cleanup

Now, we cleanup the message fields in the same place
where ther are received. This makes much more sense than
to delegate this responsability to the SMIOs.
hal/dev_io/dev_io_core.c: use new messaging layer
hal/hal.mk: update makefile
hal/*/*/acq/sm_io_acq_exp.c: fix wrong print type

This is a trivial change, as we were printing a long
unsigned type instead of a long signed type.

This commit, alongside the commits 242c04c7b2..29fe5d2b87
fixes #31 github issue.