Build a proper QOM device tree for the STM32

This is needed for the unit tests to work (and is a good
idea for the long-term as well).
Fix stm32_hw_warn to match hw_error (to avoid compile error/warning)
Update STM32 GPIO to directly set gpio_out IRQs.

The previous method was incompatible with the QTest's "intercept irq"
logic.
Briefly document STM32 unit tests.
Finish basic GPIO unit tests.

1) Cleanup old code.
2) Add bit set/reset register tests.