Bug 1046891 - Add dependency management to Runner

Tracking PR so I can get feedback, do not merge.

Tests en route.

@catlee r?
you can probably leave this as a set too. ", ".join(set(...)) will work above