Factory improvements

Added methods for creating charms, services and units to the testing factory.
Do this

MakeMachine(params *MachineParams) *state.Machine {
if params == nil {
   params = new(MachineParams) 
}

Then all the callers can say `factory.MakeMachine(nil)`, which will be the common case.