Remove ScalaCheck integration and add LoneElement
Spy enters the game
Make strategy a field in Player, don't use `contain only` matcher

also, use `loneElement` matcher instead of head, when we want to make sure the
collection only has one element.

Strategy: with the previous implementation based on traits, it would have been
impossible to override the default behaviour because every copy of the
Player instance would bring it back.
`contains only`: it does not check the number of occurrences of the
elements in the collection (treats the collection as a set).