This avoids storing two separate values and makes the test for which type is held clearer. This replaces use of unique_ptr for conditionally storing a string, and is also used in place of StringParameterBackup.