slight type adjustment to prevent loss of precision
changing 'CandidateSlate' from a 'std::array' to a 'std::vector'

By using a 'std::vector', I will be able to use for-each loops,
increasing readibility. Whenever the number of Candidates changes, the
vector needs to be resized and reset.

Additionally, I noticed some structure member values have garbage
values due to a lack of initialization. This patch corrects that
behavior in order to help reduce the risk of "surprises" such as
allocating more memory than the system has available if the number of
Candidates hold a very large "junk" value.

Lastly, to help minimize the number of allocation calls, the code will
now reserve enough memory for the maximum number of Candidates in the
particular vector. This reservation should have no detrimental change
in the performance.