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.
`PIO_PDSR` has 32 bit, if `GPIO_15_PIN` is 31 and it is 1 this can lead to an problem returning as signed integer.
Maybe use
```C
return ((GPIO_15_DEV->PIO_PDSR & GPIO_15_PIN) >> GPIO_15_PIN);
```