Refactor predicates to be self evaluating

Moves towards not needing an Evaluator class while moving the responsibility of how to
resolve a predicate into the predicate itself
Convert evaluator tests into predicate tests

Predicates responsible for evaluating themselves, the tests should be against the models
Remove predicate evaluator entirely

- All tests
- Any use by engine, transition
- The class itself

Any place it would have been used can call evaluate on the predicate, and pass state
Merge pull request #51 from alphagov/self-evaluating-predicates

Rather than having a single Evaluator, that acts on different predicate types, move the logic of evaluation into each predicate itself, and allow them to recursively resolve.