MachineAgent refactoring.

- A type, "machineAgentCmd" was split out from MachineAgent to handle command-line operations, and starting a MachineAgent.
- MachineAgent now requests 3 different interface types for various operations. Currently these are still fulfilled by cmd/jujud/agent/AgentConf, but this should be broken up later.