A terrible yet workable last-ditch solution for missing values.  #4571.

As we transition data out of NCS Navigator for one of our 1.6.7 sites,
we have found several situations in which instrument data was truly not
entered.  InstrumentToWarehouse was designed to fill in these missing
values with -4 (i.e. "Missing in Error"), but it does not accomplish
this in all cases.  Some examples:

* responses missing because one part of a multi-part instrument was
  never started
* responses missing due to some unknown cause (see e.g. [1] if you have
  access to NUBIC's internal issue tracker)

This horrifying, cheesy, yet effective solution makes a last pass over
the created MDES record, and just fills in -4s where it can.  It farts
in the general direction of data quality, but we have been told that
quality now takes a backseat to _just getting the data out_.  Also, it
works.

This commit has no tests because writing test cases for this sort of
thing takes longer than just demonstrating it works by running ETL jobs
on test instances.

[1]: https://code.bioinformatics.northwestern.edu/redmine/issues/show/9680
(cherry picked from commit 47ff45aaa92af1498c9bfac12ea031c9e9178b72)
Exclude psu_id and recruit_type from the -4orcing process.

Addresses #4571.

psu_id and recruit_type are set further up the pipeline (specifically,
as an ApplyGlobalValuesFilter[1] in ncs_mdes_warehouse).  Setting it
here interferes with that process.

[1]: https://github.com/NUBIC/ncs_mdes_warehouse/blob/master/lib/ncs_navigator/warehouse/filters/apply_global_values_filter.rb#L45-L61
(cherry picked from commit 52fa452d5eee9c08894218ed030ba04950705587)
Merge pull request #297 from NUBIC/4571-missingnohax4pbs

A terrible yet workable last-ditch solution for missing values. #4571. (PBS branch)