refactored IdlePromise into RevitServices

also removed redundant delegate constructor calls across solution