Fix logic errors in STM32 SPI DMA.

The txresult and rxresult variables are used to further check
on the completion of the dma transfers. However they were never
cleared, causing dma_*wait to possibly return too early.

However in practice this bug would only occur when sem_wait was
interrupted by a signal.
MAX11802: Fix a timing bug that corrupted coordinates.

Also remove some useless SPI selects from max11802.
Make mmcsd_spi use SPI_LOCK.

This allows the SD card to co-exist on the bus with other devices.

Also fix some existing semaphore bugs in mmcsd_spi.
CNxWidget: Add function to get current style.

This is useful if you want to create another widget with the
same style.
Make a few methods of CTaskbar virtual to allow customizations.
Make CCycleButton change state in onPreRelease().

This way the new value is already available when a listener gets
the action event.
Fix bitmap_converter.py so that it works with indexed input images.
Small mod to hyphen in sans17x22 font.

The hyphen did not have any space on its sides. This caused
it to run together with other characters so that for example "+-"
would look weird.
Take semaphore in mm_mallinfo.

I'm not sure if this is absolutely necessary. Added it while debugging
a bug that turned out to be a stack overflow. Atleast I don't see a
reason why it would be safe without a lock.