Image Widget: refactor to allow conditional loading of the styles

Use the new WP_Widget class
Move enqueue function inside the widget class
Wrap in a check to see if the widget is active