Adds Methods to Get Poll Results

Adds methods to the board game entity to get the winning option entity
for each poll type.

Adds methods to the poll entity to get their ResultsCollection and an
OptionCollection of the winning options. Adds a factory method to Poll
to allow each poll type to have its own logic for selecting the winning
options.

Adds ResultCollection and Result entities. Adds methods to Result entity
to allow return an OptionsCollection and an OptionsCollection with only
the options that had the highest votes.

Adds OptionCollection and Option entities.

Adds entities for each different poll type extending from Poll. Adds
custom logic to the SuggestedNumPlayersPoll to make it easier to get
the results for best number of players.

Adds a groupBy method to the AbstractDataEntityCollection that groups
the children in a collection by a specific field and returns the group
as an array.

Adds tests for all new methods and entities.