Reuse DesiredLRP data in ConvergeLRPs

* Store DesiredLRPs in map instead of struct{} sentinel

[#83638702]
[#83638704]

Signed-off-by: Eric Malm <emalm@pivotal.io>
Use bbs.timeProvider in ConvergeLRPs

[#83638702]

Signed-off-by: Eric Malm <emalm@pivotal.io>
Log consistently in ConvergeLRPs

* create new logging session for each call
* pass logger through to internal functions
* also, rename keysToDelete to desiredLRPKeysToDelete
* defer waitgroup.Done() in batch compare-and-swap

[#83638702]

Signed-off-by: Eric Malm <emalm@pivotal.io>
Check values correctly in ClaimActualLRP

* instance guid and domain must always match

[#83638702]

Signed-off-by: Eric Malm <emalm@pivotal.io>
Check values correctly in StartActualLRP

* instance guid and domain must always match

[#83638702]

Signed-off-by: Eric Malm <emalm@pivotal.io>
Add ActualLRP isEquivalent [#83638702]

Signed-off-by: Eric Malm <emalm@pivotal.io>
Consolidate ActualLRP transition logic

* Logic contained in ActualLRP.AllowsTransitionTo
* Use in ClaimActualLRP and StartActualLRP

[#83638702]

Signed-off-by: Eric Malm <emalm@pivotal.io>
Remove models.ActualLRPStateInvalid

[#83638702]

Signed-off-by: Eric Malm <emalm@pivotal.io>