This commit adds functionality to menus for scrolling through items using the UserInput abstraction. Copied and pasted code in, we will have to merge the copies later.