Make the knockout scheduler injectable.

Smallpeice isn't going to use this scheduler, but will otherwise
use similar stuff.

Change-Id: I68c99f5f31bb78aabc038c103d8fd8a40cb32a46
Separate ranking a knockout from getting winners

This makes it possible to query for all the teams, removing the
expectation that we only want the top two. Leave the existing
signature behving the same for compatibility.

Change-Id: Ia92ebd8b7cf985f5e1493c3d341de9eee54d8668
Add a static knockout scheduler

This just reads a config from the schedule file and builds up a
somewhat static schedule from that. There is support for referencing
seeds and positions in other knockout matches, but timings and zone
allocation are all handled explicitly in that config.

Change-Id: I8253ffbfa030fbc72d99f9b949282ad0de1a6f55
Merge commit 'refs/changes/01/1601/1' of https://www.studentrobotics.org/gerrit/comp/srcomp into smallpeice-2014