Add string type

targets #35 
And because a `realloc()` call is expensive it would be good to calculate the new length beforehand and not doing a `realloc()` call in every iteration!