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.
Answers are now typed objects

Question models know answer type
Raw answers parsed into Smartdown::Model::Answers
as they are processed by Engine.
Model::Answer objects correctly handle comparing against strings

Predicates generally compare answers against strings, so we want
the comparison methods of Answers to parse the compared value before
evaluating the comparison.
Answers support #evaluate