add new VisibilityTracker class to implement cycling window visibility "properly" - i.e. avoiding hide+show/present to get a hidden or partially obscured window visible again
use new VisibilityTracker class for ArdourWindow