stm32: add sw workaround for broken stm32 hw RTS implementation

adds support for manually asserting nRTS when the OS buffer is nearly full
and deasserting it when it has room again.

This makes the RTS pin actually work in a useful way (the stm32 hw
implementation is broken - it asserts nRTS as soon as more than one
character is received).

We assert nRTS from inside of up_recvchars.  For deassertion we needed
a new callback from the general serial device layer when characters
have been dequed.  onrxdeque was added to uart_ops_s for this purpose and
implemented (currently) only on the stm32.
stm32_i2c: fixed timeout handling

thanks to hxxnrx@gmail.com for noticing this
stm32_i2c: ensure we don't change priv-> after semaphore is released

this prevents a race condition where a subsequent I2C transfer could
be lost

Many thanks to hxxnrx@gmail.com for reporting this bug
mtd driver: add missing SPI header
Fix for sed "permission denied" error in Windows build

Cygwin sed in-place edit (option -i) broken, will mess up permissions.
Changed to work without in-place edit.
Fixed FS command IO buffer
Corrected pinmaps for stm32f40xxx processor
Declared log2l() in ARM math.h
Disable -Wshadow warnings for system headers - alternatively we could use #pragma GCC system_header in those
include/cxx: Fix some bad idempotence defintions in header files
Fixed include guard in cstdio. Broken include guard was preventing cstdio to compile if cctype was included first (and vice versa); as a result, the code that needed both cctype and cstdio was failing to compile.
stm32_i2c: check for msgc underflow in I2C ISR

a spurious I2C interrupt could cause priv->msgc to underflow, leading
to memory being overwritten. This seems to have been the cause of at
least some of lockups we have seen
stm32_i2c: handle more unexpected ISR conditions

this clears the interrupt for more unexpected ISR conditions that
otherwise lead to an ISR storm. When that happens no user threads are
able to run as the I2C ISR is continually raised

Thanks to Lorenz for help in tracking this down