ViewSelector split out into separate class

Didn't seem much point splitting out the tests as the menu coverage more
explicitly covers the behaviour

Additionally when there is only one view, it's no longer interactable,
down arrow removed to indicate