BallotState is now completely immutable, intoduced a new Object for CandidateStates, Extracted an STVElectionCalculationStep from the STVElectionCalculation for better testability
Distributed the Matchers to static helper classes
Extracted the initial CandidateStates fixture to a constant field
Moving all custom written hamcrest matchers to their own static helper classes
Introduced Generics to allow custom Candidate Extensions