controls:removed controls as well on destroy and added method to handle show/hide of controls

1. Remove controls as well on widget destroy.
    Scenario: If you have 2 images, one(suppose A) has ui_disabled and other(suppose B) doesnt, and both are using the same viewer, if B is viewed and destroyed, and then A is viewed,  since B's ui was not destroyed, ui is shown for A even if ui is disbaled for A,
2. Added a method to control hide/show of controls
 Scenario: There may be cases where one doesnt want controls to be there all the time but only on some event trigger. ui_disabled just handles the initial configuration, hence the method