image loading optimisation + display optimisation

All images (backgrounds & spritesheets) are now in one-per-game
dictionaries and get loaded only once. All other resources should be
loaded the same way in the future as well.
Also in this commit:
I was getting tired of all stuff redrawing all the time, it's not like
it's supposed to be animated, so doing something to a button now
refreshes only the portion of the screen where the button is + buttons
now acccurately tell you from where the game was quitted + leaving any
menu leaves the title on screen, so that it doesn't reload all the time