Update plugin docs.
Add a PluginManager.runiter() method.

This allows iteratting over an iterable of PluginManagerRun
objects. A PluginManagerRun will be created for every plugin
method that is a hook for the given slot. Ie, if 10 plugins
all register a 'content_update_hook', this lets you iterate
over all if you need. PluginManagerRun has attributes for
the associated conduit and plugin method.

ContentActionClient will uses this to wrap each content
plugin invocation to track their update reports.
Use PluginManager.runiter for content actions.

Instead of letting PluginManager.run() run all the
content plugins before returining, use PluginManager.runiter()
to get a PluginManagerRunner for each hook, and wrap it
with a ContentPluginActionInvoker so we can track reports
for each content plugin.
We still need the entdir refresh for 'attach'.
Add a runiter to the fixtures mock PluginManager