cc2538: Initialize .data/.bss using ROM functions
cc2538: Initialize .data/.bss using ROM functions

This is safer because the previous code assumed that the start and end
VMAs of .data and .bss were word-aligned, which is not always the case,
so the initialization code could write data outside these sections. The
ROM functions support any address boundary.

This is faster because the ROM functions are ultra optimized, using
realignment and the LDM/STM instructions, which is much better than the
previous simple loops of single word accesses.

This is smaller because the ROM functions don't require to add any code
to the target device other than simple function calls.

This makes the code simpler and more maintainable because standard
functions are not reimplemented and no assembly is used.

Note that this is also faster and smaller than the corresponding
functions from the standard string library.

Signed-off-by: Benoît Thébaudeau <b3efeb72fa9d3102885911404c5fbece843f6c8f@gmail.com>

MohamedSeliem/contiki,arurke/contiki,MohamedSeliem/contiki,bluerover/6lbr,bluerover/6lbr,bluerover/6lbr,arurke/contiki,arurke/contiki,MohamedSeliem/contiki,bluerover/6lbr,arurke/contiki,MohamedSeliem/contiki,MohamedSeliem/contiki,MohamedSeliem/contiki,arurke/contiki,arurke/contiki,bluerover/6lbr,arurke/contiki,bluerover/6lbr,MohamedSeliem/contiki,bluerover/6lbr