move InferRemoteUnit inside runner.Factory

This is a step towards fixing the juju-run data race; by waiting until we're inside the RunCommands operation before checking args against current state, we are (1) more likely to be checking against current reality and (2) will soon be able to eliminate the race (once we've moved the relationer changes inside their own operations, and ensured that the operations themselves are serialized).

(Review request: http://reviews.vapour.ws/r/598/)