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.
Directly, no, as Array#include? evaluates the wrong way round for that: eg. 
```
[array_thing].include?(comparison_thing)
```
evaluates `array_thing == comparison_thing`, not `comparison_thing == array_thing`

This has got me thinking that our answers could inherit from applicable types and include `Answer::Base` functionality as a module instead. This would have an `Answer::Date` inheriting from `Date`, so comparisons like this would just work. What do you think?