Refactor Gamestates into Scenes

Gamestates are difficult to test because you can't instantiate them more than once. I aim to fix that by changing them to Scenes. Also, take a look at the scene tests. We can now actually test button presses in scenes, which makes it very easy to see if things are working.

```lua
local Scene = middle.class('Scene')

function Scene:initailize(app)
end

function Scene:draw()
end

function Scene:show()
end

function Scene:hide()
end

function Scene:update(dt)
end

function Scene:keypressed(k)
end

function Scene:keyreleased(k)
end

function Scene:buttonpressed(b)
end

function Scene:buttonreleased(b)
end
```