Task health checking by app version.

- HC manager now tracks checks by appId + version
- Added TaskTracker.getVersion
- Call healthCheckManager.addAllFor from
  DeploymentActor during start and restart to
  avoid a race between health check reconciliation
  and the initial task health update from the
  executor health check system
- Added missing health check reconciliation calls
- Fixes #688
- Fixes #697
Addressed review comments for #752.

- Added internal readers-writers lock in
  MarathonHealthCheckManager.
- Cleaned up unnecessary pattern matching.
- Removed unused constructor param of type
  AppRepository in MarathonHealchCheckManager.
- Other minor refactoring.
Merge pull request #752 from mesosphere/697-health-checks-by-app-version

Task health checking by app version.