Clean up answering.

When answering a question, using the value instead of a
  hokey way of getting that done.
Also, using question ids, since the decision support is going
  to need to know what question we're answering.
Cleanup question types.

Using sub-components to get open answers vs. discrete answers.
Requiring a type on the question object.
Requiring a values object on discrete questions.