Refactor spell window to use model/view and remove duplicated code in QuickKeysMenu

This should also improve window resizing performance, the widgets are now just resized instead of recreated.