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.
I tested this with the stm32f4discovery board. The only way I got the interrupt running for GPIO_0 (the user button on PA0) was to comment out the upper GPIO_1 (Pin PE0) interrupt initialization. Any idea, why the GPIO_1 interrupt initialization disables the GPIO_0 interrupt?