state/machine: use WaitAgentPresence, rename AgentAlive

Using WaitAgentPresence after SetAgentPresence gives time for the first write of the pinger data to mongo to be persisted. This fixes issues with juju status and ensure-availability being run in quick succession with juju bootstrap.
please check errors even on defer. There are a couple of utility funcs around, although they might be for Stoppers not Killers; make one if it's not around. Something like

    func assertKill(c *gc.C, killer Killer) {
        c.Assert(killer.Kill(), gc.IsNil)
    }

    defer assertKill(c, pingerA)