Allow custom textures to load from unicode paths.

`std::vector<u8> buffer(file.GetSize());`

and just pass buffer.data() to `file.ReadBytes` and `SOIL_load_image_from_memory`