Feat tracer: compute extraneous punches for TraceData
Feat runner panel: display number of extraneous punches
Feat persistence: load/save number of extraneous punches for each runner
Feat PenaltyChecker: define/save penalty property for extraneous punches in PenaltyChecker
Feat PenaltyChecker: add time penalty for extraneous punches to global time penalties
Feat PenaltyConfig: UI to display/change extraneous penalty config
Feat ExtraneousPunchTracer: do not count subst punch as extraneous punch

Primary reason: it already counts as a MP, skipping a control or taking an extraneous control for another should get the same penalty. A runner taking a control for another should not be penalized two times  (there is no advantage in taking an extra control for another instead of just skipping it).

There is one consequence: recommandation that Extra penalty is less or equal to MP penalty. Sample case:
- runner A substs extra control Y for control X (-X+Y) -> 1 MP penalty
- runner B takes extra control Y but takes control X, (+Y,X) -> 1 extra penalty
All things equal, B should be ahead of A because he has all controls, even with an extra penalty.
Merge pull request #33 from sdenier/feat-extra-penalty

Feature: penalties for extraneous punches