juju-run: allow specific relation and remote-unit to be specified.

This is the first part of the juju run with context refactor. This uses @fwereade's updates to the uniter and context parts of the code. This is for the juju-run (juju dash run) jujud / runlistener backend of the juju run process.

The second PR will implement the juju run (juju space run) command line interface to this backend implementation.