New 'widget_context_visibility' filter

Provides even more flexibility so that other plugins could override any of the widget context visibility/display logic.

Default behaviour remains unchanged.