Allow passing of kwargs in a single dict in RunnerClient

Instead of (confusingly) passing the ``kwarg`` value as pub data, rename
that argument to ``pub_data``, and make ``kwarg`` act as a dictionary which
will be merged into the arglist before being passed to
``load_args_and_kwargs()``. The now more-aptly-named ``pub_data`` value will
still be passed to this function in such a way that it is loaded as pub
data.

Fixes #11375.