Changed itoa in gpio.c to be able to select pin 0

I changed the itoa routine so it is possible to select a pin 0.

The input and return was
0 => 
1 => 1 
2 => 2
...
16777212 => 16777212
16777213 => 16777213
16777214 => 16777214

now it is
0 => 0
1 => 1
2 => 2
3 => 3
....
16777212 => 16777212
16777213 => 16777213
16777214 => 16777214

So a input value of 0 will not result in \0 but in "0"

I restructured the for ... loop into a do .. while as (val && i) is false if val is 0 and the for loop was never executed. 

Do you think thats ok?