add utility function for turning integers into strings
This is common operation within Graphviz. It is also a common source of bugs.
There have been numerous instances of ints being stringized into fixed sized
buffers that were not large enough to hold them. The result has been pernicious
memory safety issues that have been difficult to reproduce and root cause.¹
The hope is that this wrapper can provide a safe, efficient, and tested
alternative. Going forwards, the intent is to replace as many compatible
operations as possible with calls to this function.
¹ A user would report a crash that relied on their objects having large IDs or
their platform having a large int width. The example would run fine in a
different environment and mystify the maintainers.