Adds a new type to the config system: ScalarUnionType.
This allows one to specify config schema that accepts a scalar value
OR a non-scalar value like a List, Dict, or Selector. This way the parse
is unambiguous (as far as I know)
The motivation here is to allow runtime scalars to be configured without
a dictionary with the key "value" and instead just use the scalar value
directly. However we still also want to leave the option to load scalars
from a json or pickle file.
solids: multiply_the_word: inputs: word: value: bar
solids: multiply_the_word: inputs: word: bar
Depends on D1734