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.
Yes, `GPIO_0` and `GPIO_1` share the same external interrupt line in the current pin configuration. This is because of bad design by ST, as `PA0` is connected to the user button and `PE0` is connected to the `INT` line of the accelerometer -> so currently it is only possbile to use one of them in ext-int configuration...