Added an ImageManager singleton.
It ensures that all images are loaded only once. Different objects using
the same image will share a reference to the same image.
All objects using images must use this class to get the image instead of
loading it themselves.
Modified current classes to use ImageManager.