improve unsafe string hack

I think this is a better way to convert a byteslice to string without copying the bytes. By using reflect.StringHeader, it will work even if the memory layout of strings or slices changes. And if the slice or string formats radically change, you will get a compiler error instead of it silently failing.