Reworked statistics components.

Statistic keys can now be objects and values other than strings.
Split sources.
Fixed test cases.
Extended OOP.

Added member modifiers and initializers.