Expanded the image class to share its Data and overloaded the copy c'tor and assignment operator to update the reference counter.
This way it's easy to return images from functions without deep copies occurring.