Refactoring run_agent_on so that it functions as expected.

When testing a module one would usually use the apply_manifest_on
method, which applies all the command line options and allows you
to validate the exits codes. When testing in a multi-node scenario
with one master host and one agent host you are unable to do that.
With windows, the multi-node test is a requirement.

The run_agent_on method does not provide the same flexibility in
apply detailed-exit-codes and being able to validate against them.
This change aims to solve that problem by making it function in the
same way as the apply_manifest_on method.