Fix for visibilty of cling out of sync with the external viewer button

Due to no visiblity changed listener provided from Framework, a subclass
of the image button was created to track the visiblity change of itself
and more importantly its ancesters. This way cling is gauranteed to be
in sync with the visility of the button.

Also fixed preference type of showing refocus viewer cling.

Bug: 13754204
Bug: 13752484
Change-Id: Iaf38c076d5b1e251f3d5d4b4ccba1bd8447999aa
4 files changed