scheduler, agent: major refactor

- State machine in scheduler now respects the fact that mutations may
  occur in the agents from other, outside forces.

- agent.Client as a HTTP front to a remote agent.

- Helpers and miscellaneous improvements.
Merge branch 'master' into scheduler-refactor-redux

Conflicts:
	harpoon-agent/container.go
	harpoon-agent/lib/agent.go
	harpoon-agent/lib/client.go
	harpoon-agent/lib/mock.go
	harpoon-scheduler/agent.go
	harpoon-scheduler/agent_test.go
	harpoon-scheduler/registry.go
	harpoon-scheduler/state_machine.go
Merge pull request #35 from soundcloud/scheduler-refactor-redux

Scheduler refactor