Answers are now typed objects

All answers are parsed into one of the these types:
```
Smartdown::Model::Answer::Date
Smartdown::Model::Answer::MultipleChoice
Smartdown::Model::Answer::Salary
```
The Question models are responsible for specifying the type of answer expected.

This is the first step in being able to validate answers.
Actually, thinking more about it, since predicate values here are always going to be strings that's not going to solve the issue anyway. It's probably better to just invert the comparison using an `.any?` block. I'll modify.