Refactoring of Step action to run using SimpleStep (step on flat ground)
and RampStep (step up or down a ramp object).  Potentially other types
of special steps can be easily included now as well.  The grittier
details are implemented within the types of steps themselves, and Step
can be more abstract.