texture: two texture speedups

1. Check to see if we have a texture loaded already before opening/uploading
   another instance of it.

2. Set a time-out for deleting textures. If they are needed again before the
   time-out expires, they are re-added to the loaded textures array and ready
   for use again. Otherwise, they are deleted after X msec. This helps to avoid
   doing _really_ nasty things, like re-loading the background image when
   moving from home to settings.