Convert registry.go to use a for-select loop instead of locks.
Move all registry state variables to loop() local vars.
Merge pull request #138 from soundcloud/expand-agent-select-loop

Convert registry.go to use a for-select loop instead of locks.
Move environment/job/product to ContainerConfig

These dimensions are necessary components of service discovery.
So, this change allows the agent to emit SD information.
Initial implementation of agent service discovery

Not yet invoked by the registry.
Scheduler registry: update for definition moves
Scheduler xf: update for definition moves
Standardize writes to disk
serviceDiscovery as interface
Prep registry for SD injection
Wire in service discovery to registry
Instrument SD invocations
s/Put/Create
s/Put/Create in api_test
Fix scheduler Schedule behavior

Put used to Create+Start, but now it just Creates, so we need to allow
for ErrAlreadyExists in the Schedule behavior.
Scheduler agentrepr.Client interface update
Replace time.Sleep with runtime.Gosched in tests (unrelated)
Update harpoonctl Put -> Create
xf_test not tightly-scoped enough for Gosched
More attempts to fix test on travis (works fine locally)