texture: combine Load() and GetTexture() since they must be used together
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.
Merge pull request #2713 from theuni/delay-texture-unload

gui: two texture speedups