Fixed the size parameter in the Icon widget

The Icon widget would take the size of the image when you set a new image.  This affected the constructor because of the order in which things happen.  The size was set before the image was set.  I have now updated the setter for the Icon to save the previous size and re-apply that size after the new image is set.  The image now takes the size of the icon which I believe is a better behaviour all around.

fixes #751