run: support multiple --metrics backends

All supported metrics backends can be used simulataneously, and the
internal metrics are always forwarded to a node parent process, if the
IPC channel exists.
run: fix appname when not profiling

The agent caches cwd()/package.json's app name when required, so its
important not to require it until run has changed to the target
directory. If --no-profile is NOT provided, then agent.profile() is
always called in the app's directory, so will pick up the correct
appname later, but with --no-profile, this doesn't happen, and the
appname would either be undefined, or if you happened to have a
package.json in the directory you were running from, it would use that
app name... but only for the master, the workers would have the right
name.

Note that since I usually run test-run-metrics from the supervisor root,
the master's appname was being set to strong-supervisor, from the
package.json in the supervisor's root, which I mistook for a feature,
until I used the tap runner, and the appname was undefined, because the
tap runner changes into the test/ directory before running, where there
is no package.json.