Support disconnecting workers from a running distributor

Work to be done:
- [x] Modify `DistributorReadyMessageProcessor` to keep track of active workers
- [x] Implement a Powershell cmdlet that sends a control message to the Distributor control queue to disconnect a worker
- [x] Introduce worker sessionid so we can differentiate between control messages that are from disconnected worker and hence should be ignored vs active worker ones 
- [x] Make `IWorkerAvailabilityManager` backward compatible
- [x] Document new `IWorkerAvailabilityManager` methods
- [x] Create a new Distributor project
- [x] Mark Distributer in Core as obsolete + any public classes related to it
- [x] Update ScaleOut sample to use new Distributor
- [x] Add AcceptanceTests for the Distributor
- [x] Add nuget package for new assembly
- [x] ~~Modify UnicastBus so that it reads MasterNodeAddress from somewhere so that we can set it from the new assembly~~ Added workaround instead

This will hopefully close:
- #1732 
- #978