engine: tweak lease logging
engine: limit reconciliation duration

A reconciliation attempt should stop when the lease is no longer
held by a given agent to prevent conflict with other engines.
engine: make reconcile interval configurable
Merge pull request #729 from bcwaldon/engine-timeout

engine: limit reconciliation duration
engine: collapse Reconciler and dumbReconciler
engine: break out scheduler from reconciler
agent: move AbleToRun to AgentState
engine: drop offers; pick first capable agent
engine: refactor clusterState; track changes during reconcile
engine: schedule to agent with least number of units