Refactor step handler to pass a context object
Summary: Previously I think I gave too much weight to getting the step handler abstraction to work with the existing multiprocess executor machinery. I think the abstraction is actually more useful if we limit it's parameters, for example in a case where we want to call a step handler across a process boundary. This refactors the arguments to a context object that can be serialized and deserialized if necessary, but doesn't add overhead otherwise.
Test Plan: integration
Reviewers: dgibson, alangenfeld
Reviewed By: dgibson
Differential Revision: https://dagster.phacility.com/D7901