fix(protocol): execute first step with goto_step
fix(protocol): execute first step with goto_step

Prior to this commit, the first step in a protocol was executed by calling
`app.protocol.run_step()`, whereas the rest of the steps were executed by
calling `app.protocol.goto(step)`.  This could lead to inconsistent
behaviour for plugins that update state based on `on_step_swapped`, which
is not triggered by `run_step`, but is triggered by `goto_step`.

In this commit, trigger execution of the first step in a protocol with
`goto_step` instead of calling `run_step` directly.  This ensures
consistent behaviour across all steps since all subsequent steps are
executed by calling `goto_step`.

wheeler-microfluidics/microdrop