NNC::Core::Surveyor::SurveyTaker.  #2744.

This is a production-ready (well, maybe) reimplementation of the
SurveyCompletion module used in OperationalDataExtractor examples.
Since survey completion and prepopulation are really two instances of
the same problem, I decided to unify them.

In future commits, this module will replace SurveyCompletion.

This module also introduces a custom scope for Response mass-assignment.
The scope is meant to be used by all Cases code that does
mass-assignment on Responses, but I have my doubts that'll work out.
Feel free to suggest alternative scope names.

The kitchen_sink_survey.rb file used by the SurveyTaker spec is
Surveyor's kitchen_sink_survey.rb augmented with more reference
identifiers.
Use SurveyTaker for survey completion in (some) specs.  #2744.

The shim around SurveyTaker#respond in SurveyCompletion is quite a mess,
but it minimizes changes.  Further fixes welcome.

This commit also fixes incorrect RACE_1_OTH setups for many test
surveys.  (The test surveys didn't have a question/answer structure that
matched what was actually in instruments.)  There are probably other
test surveys that need to be fixed.

This commit deletes four examples in the PregnancyScreener ODE that deal
with different date formats.  The examples were deleted because date
parsing is not the ODE's job; that's the job of whatever is sending
values into Surveyor's datastore.

Also SurveyTaker#respond uses Response#value= to set values, which broke
these examples.  I'll add appropriate examples for Response#value= and
fix it up in a future commit.