fix(agent): Start/stop units asynchronously

Fix #466
test(unit): Add FakeUnitManager
Merge pull request #489 from bcwaldon/unitmanager

Add FakeUnitManager
Merge pull request #486 from bcwaldon/466

fix(agent): Start/stop units asynchronously
feat(unit): add InstanceUnit helpers
Merge pull request #475 from jonboulle/template_units

feat(unit): add InstanceUnit helpers
refactor(registry): Move TestRegistry to registry pkg
refactor(TestRegistry): Embed Registry iface and drop unimplemented methods
refactor(TestRegistry): Use pointer receivers
refactor(registry): s/TestRegistry/FakeRegistry/
refactor(FakeRegistry): Use map to store Jobs
refactor(FakeRegistry): Use setters to load fixtures
fix(FakeRegistry): Protect access with mutex
feat(FakeRegistry): Implement CreateJob & DestroyJob
feat(FakeRegistry): Implement JobBid-related methods
feat(FakeRegistry): Implement SaveUnitState
feat(FakeRegistry): Implement Set/GetJobTargetState
test(FakeRegistry): Assert fake registry job functionality