[Firmware] improved the communication to use DMA
-Modified the UART module to send and receive bytes asynchronously, with
DMA.
-Updated the Communication module.
-Added the Circular buffer module, to simplify the transfer of incomming
bytes from the UART to the Communication.
-Simplified and fixed bugs in the SendDebugMessageDecimated() macro.
-Moved the GPIO clock and NVIC initialization out of the Callback timers
module, to the main.