Adding at least one method to ActivityInterface that we *are* relying on being there

See ActivityController - we get an ActivityInterface back (indirectly) from ActivityFactory::createActivity() and then call setInputFiles on it
Fixing and simplifying runner

Yes, this bootstraps the Silex app, including controllers, so it's heavier, but it's easier: both the CLI and the web app use the same container. The CLI only cares that it's a Pimple container (where in reality it's also a Silex app), but that's ok
Fixing the RunCommand with changes to how activities are created

Before, the ActivityRunner took an activity name and an array of paths. But now, the ActivityFactory should be configured
first, and then be used to get the Activity instance. Finally, the input paths are set on the Activity.

There's probably some opportunity to simplify this process at some point.