agent: remove restart command

Other, somewhat random changes:

- Clarify agent/container heartbeat state machine transitions
- Naming convention stuff (request channels in container)
- Code style stuff (all over the place)

Takes over from PR #11. Addresses issue #4.
I think inverting the cases works nicely for this kind of thing:

```go
switch c.ContainerInstance.Status {
default:
  return fmt.Errorf("can't start container with status %s", c.ContainerInstance.Status)

case agent.ContainerStatusFinished, agent.ContainerStatusFailed:
}
```