drivers: improved IF for low-level GPIO driver

Improved the GPIO interface and adjusted existing implementations to it.

Tested for
- stm32f0discovery
- stm32f4discovery

Not (much) tested for `arduino-due`, as proper implementation for it will follow later tonight in a separate PR.
Although a slim low-level driver it hurts me to see the null set pointer never checked again.

ad i) and ii) a **very** little bit of optimisation we pay with robustness.

I'd vote to keep the checks but wont object if others are fine with it.