ino: fix weird placement new

This placement new was assuming that the String it constructs is the first
member of the struct.  Instead, find the String member explicitly.
ino: use snprintf instead of sprintf

The sprintf used in this code is potentially unsafe, especially on 64-bit
platforms.  While it is unlikely that we'll break a 10 byte buffer, switch
to an 11-byte buffer (ten bytes for 2^32 ~ 4e10 plus one for a sign) and
pass that length into snprintf.
Merge pull request #81 from pallas/master

a couple of nits in lib/ino