A SparseStateActionFeatures implementation that takes as input a SparseStateFeatures object,
and turns it into state-action features taking the cross product of the features with the action set. This
implementation is lazy and creates state-action features as they are queried. Consequently, the state-action feature indices
for an action may not be consecutive.