add support for custom memory allocation

The stbi_load* functions have each been given an _alloc variation allowing the user to supply allocation callbacks in the spirit of stbi_io_callbacks