Fix for SPI driver to handle different lengths of tx and rx buffer. 

Note that tx buffer length MUST be greater than or equal to the rx buffer length in each transaction. Attempt to solve Issue #348. Also fixed DMA transfer length for using 16bit spi data lengths, untested. Some blocking WHILE loops that maybe need to be fixed.

3 WHILE loops [here](https://github.com/scdwyer/paparazzi/blob/cee5d60b032abd1bd7cd30b46b747568d43ab3b0/sw/airborne/arch/stm32/mcu_periph/spi_arch.c#L473).