NcsNavigator::Core::Surveyor::SurveyTaker.  #3500.

This is a production-ready 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.

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.

Subsequent commits will adapt the SurveyCompletion module to use
SurveyTaker.
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=.
Update InstrumentContext spec to use SurveyTaker.  #3500.

This commit also brings reference identifiers in associated test
surveys into sync with what's in the actual instruments.
Remove SurveyCompletion for Contact spec.  #3500.

It's not used.
Update Participant spec to use SurveyTaker.  #3500.
Update SampledPersonsIneligibility spec to use SurveyTaker.  #3500.