Id map sorting

replace `uiElement.map_list` with a widget that can sort
uses knockout but provides a similar interface to the uiElement functions