Refactor the scorer to be single-shot, add tests.

There's no real need for the scorer to be able to score multiple
games, and it's useful to have the data as a member rather than
potentially having to pass it around all the time.