hal/**/afcv3/*: add new static register layout for AFCv3

Also, we have changed the way we specify the devices. Now,
we have only the offsets to a generic base address. In this way,
we can instantiate various SMIO with the same name service, apart
from an ID at the end, such as: BPM0:DEVIO:SWAP0, BPM0:DEVIO:SWAP1
and so on.
hal/**/ml605/mem_layout.h: update ML605 static layout

As we are going to use a new SMIO specifier, we update the
old ML605 macro definitions here.
hal/hal_utils/hal_utils.*: add new concat function

Now, it is possbile to concatenate 2 or 3 strings
with a separator inbetween the first and the second
strings. This is a very restrict case, but it is
the one we need.

TODO: make this function more generic
hal/sm_io/*_bootstrap.*: add instance ID parameter to SMIO bootstrap

Now, this allows us to instantiate various SMIO with the
same base name service, apart from the ID appended at the end
of the service, such as: BPM0:DEVIO:SWAP0, BPM0:DEVIO:SWAP1,
and so on.

This is part of the github issue #23
hal/dev_io/*: export new DEVIO paramters to API

Now, we must specify the base SMIO core address and its
instance. In the future, these parameters will be set
by the SDB subsystem.

This is part of the github issue #23
hal/dev_io/dev_io.c: add new DEVIO parameters

This is part of the github issue #23
hal/sm_io/sm_io.*: add raw version of the SMIO ops wrappers

There are some cases that we need to write to the LLIO
without ORing the SMIO register address with the SMIO base
address, such as when we are reading from BAR2 (DDR3 currently).

This is part of the github issue #23
hal/sm_io/modules/*: update register names

Now, we are using just the offset from a SMIO base
address which is set on SMIO boot time.

This fixes #23 github issue
.ycm_extra_conf.py: update YCM include dirs
Makefile: add AFCv3 board option

The option can be selected on compile-time through the
use of the Makefile variable BOARD, with possible values
of ml605 and afcv3. Examples: BOARD=ml605 or BOARD=afcv3.
hal/dev_io/dev_io.c: add AFCv3 board switch
Merge branch 'afcv3_port' into smio_fmc130m_active
hal/*/protocols/sm_pr.c: fix trivial debug macro

We were suppose to call DBG_SM_PR inside sm_pr subsystem
DBG macros, but instead we had DBG_LL_IO.
hal/*/protocols/sm_pr_err.c: fix wrong include header
hal/*/protocols/*: fix wrong function headers
hal/*/protocols/*/*_spi.h: move register definitions

Now, they are located in hal/include/protocols/smpr_spi_regs.h.
Also, updated the hal.mk file to search files in the new folder
hal/include/hal_assert.h: remove extra brackets

Mistakenly, the brackets were added in the HAL assert
macros and, becasue of this, 2 brackets were print on
	an error.
examples/*: update examples to use new SERVICE name
hal/debug/debug_print.*: add filemode specifier

Now, we can select which mode we want to open the logfile.
The specifier follow the semantics of the fopen () call.
hal/*,libclient/*: update *_new () function semantics

Now, we specify which log filemode we want. So, we update
them here.