Revert "stm32_i2c: ensure that unexpected ISR can't overwrite stale data"

This reverts commit 099b2017ccfa0fc7696f168db2a0c2e13fe5edbc.

This is only a temporary measure to gain the time to apply a more complete fix without side effects.
include/cxx: Fix some bad idempotence defintions in header files
Disable -Wshadow warnings for system headers - alternatively we could use #pragma GCC system_header in those
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.
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.
Merge pull request #18 from Kynos/master

Fix for sed "permission denied" error in Windows build
Fixed FS command IO buffer
Revert "Revert "stm32_i2c: ensure that unexpected ISR can't overwrite stale data""

This reverts commit 7a7a07ed0ec492b3ab9f87467189886a66b2fc1a.
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
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
STM32:  Handle setting of USART CR1_M when 8 bits of data plus parity
Add "#ifdef CONFIG_ARCH_IRQPRIO" where needed
Merge pull request #21 from PX4/irqprio

Add "#ifdef CONFIG_ARCH_IRQPRIO" where needed
stm32_i2c: handle more error conditions on I2C bus

this fixes a I2C ISR storm condition where status=0x70084, which can
happen with some specific types of noise on the I2C bus. This was
reproduced by playing 80s rock through a Jabra wireless headset close
to the I2C cables.
Merge pull request #23 from tridge/pullrequest-i2c-lockup-fix

stm32_i2c: handle more error conditions on I2C bus
Force a hardfault on stack overflows to make the fault condition obvious once it occurs
Cleanup of docs / comments