cpu/stm32f4: optimized GPIO driver implementation

And the same game for the STM32F4, results (for `tests/periph_gpio_int`):

before:

```
   text    data     bss     dec     hex
  13364     112   14216   27692    6c2c
```

and after:

```
   text    data     bss     dec     hex
  12484     112   14216   26812    68bc
```
You change the order of execution here.

Before it was: `GPIO_X_EXTI_CFG(), NVIC_SetPriority(), NVIC_EnableIRQ()`
Now it is: `NVIC_SetPriority(), NVIC_EnableIRQ(), GPIO_0_EXTI_CFG()`

Is this intended?