To pave the way for more complex step keys, create a StepKey class to use for managing step keys in internal strucutres.
StepKey is intentionally not whiteslitsted for serdes - and we switch to the string form whenever we leave the core execution abstractions.