Updated CardImage so it acts like a button that auto-generates the image. This also allows the image to no longer be garbaged collected, because we keep an instance of the button which now holds the image (as it rightly should)