more stuff

most importantly, main view controller defines an API for menus to add
themselves and have callbacks registered for dropdowns. game.js does not
directly call main view controller anymore
controllers are once again instantiable on-the-fly, and the game.getMenu
function is used to find an instance of a controller