MDES version awareness for Cases entity derivation.  #3179.
Pass around Psc::ActivityLabel objects.  #3179.

The motivation for this is as follows:

For some attributes (i.e. instrument version and instrument participant
type), the fieldwork serialization process needs information all the way
back to a PSC activity label.  Since we now have a Psc::ActivityLabel
object for these things, it seems like a waste to toss them aside.

Admittedly, the changes in this commit are a bit ugly, which isn't the
intended effect.  (Quite the opposite.)

However, I think these are growing pains, not fundamental problems with
passing around label objects.  There are many pieces of code in Cases
that only partially handle labels and/or make assumptions on a label:
for example, NcsCode.find_event_by_lbl requires a string that *is not*
prefixed with "event:".  It could be easily extended to accept a
Psc::ActivityLabel object and pull out the information that it needs
from there.

Over time, I'll smoothen out the fieldwork-related changes, and
hopefully the rest will follow suit.
Fix up decimal-to-string pattern for merge tests.  #3134.