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'm not sure if we shouldn't keep this, else an invalid call like `gpio_init_out(23, 42);` would result in a null pointer dereference.