NNC::Core::Surveyor::SurveyTaker.  #3500.

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 in ODE and RSP specs.  #3500.

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

This commit also fixes a few errors in test surveys:

* RACE_1_OTH questions with answers whose response classes that didn't
  match the actual instruments
* incorrect reference identifiers in the birth visit surveys
* incorrect reference identifiers in the postnatal survey

Finally, 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, i.e. Response#value=.