Today, when checkpointing is used, it must be enabled via the workflow builder. This doesn't allow us to support all types of checkpointing scenarios gracefully. We should allow checkpointing to be passed in to a workflow at runtime - if the checkpoint manager is passed in, then we use it. Other workflows can choose to not include checkpointing by not including the checkpoint manager.