Disallow two players with the same name (#25)

Also:
* Refactor Views.hs
* Refactor player query functions