Added ImageSurface class, re-added texture binding

- Added a C ImageSurface class which stores data directly in an unsigned char
  array, so that there doesn't need to be any unnecessary object handling in
  texture allocation.
- Reimplemented bindTexture.