Make Utf8Utils thread-safe

Utf8Utils holds a static character buffer that it uses while parsing strings, which unfortunately causes issues when multiple threads are trying to instantiate DexFile.  Although it is somewhat hackish, this commit works around the issue while still avoiding an allocation on every call by making the buffer a field of ByteArrayInput and passing that into utf8BytesToString().