Made it possible to "remove" players

WHAT?
----------

It's been bugging me for a while that we can't remove players from the ladder. This PR allows players to be hidden from the ladder, while preserving their results and everyones scores.

I've also added a player show page, where you can see all of a players' recent games.

![screen shot 2014-06-27 at 22 55 38](https://cloud.githubusercontent.com/assets/111963/3418369/153e8732-fe46-11e3-94c9-5105adc05ea9.png)

HOW?
-------

* I've put in place an active scope for players. Only active players are shown on the ladder
* When players are deleted they are really marked as inactive, and their position (on the ladder) is set to nil, then all of the active players have their positions recalculated
* I also had to rewrite the State class slightly, so that it now stores player positions in the state, rather than recalculating everyone's position from their elo score (this has a side benefit, because now the only place we calculate positions is in EloRating)
Also, another way of doing this would be to calculate `dump['positions']` using this code (only) if positions is not present, then run it before the other load method. Would reduce duplication and might be clearer. But only if we want to keep the old behaviour