move ShouldHaveFocus() from IAmInputThatCanBeChanged to IAmVisualElement

because e.g. buttons can have focus too