Separate mesh writing from run in wrapper

Previously the user could not separate the execution of the simulation from the
generation of the initial conditions. Imho this constitutes bad design, thus I
fixed this behaviour.

Note: this change breaks current code using the wrapper. The following
statement running an ArepoRun simulation,

    simulation.run(params, mesh)

should be replaced by

    params.render_mesh(mesh)
    simulation.run(params)