OneSdk cmdlets

Here are list of cmdlets in this pull request (got the list from one of our "sync" mails)

Write-AzureSiteRecoveryVaultSettingFile (temporary)
Import-AzureSiteRecoveryVaultSettingsFile
Get-AzureSiteRecoveryVaultSettings (not planned, but it helps)
Get-AzureSiteRecoveryServer
Get-AzureSiteRecoveryRecoveryPlan
Start-AzureSiteRecoveryPlannedFailover
Start-AzureSiteRecoveryUnPlannedFailover
Start-AzureSiteRecoveryTestFailover
Start-AzureSiteRecoveryCommitFailover
Update-AzureSiteRecoveryProtection
Stop-AzureSiteRecoveryTestFailover
Resume-AzureStireRecoveryJob
Get-AzureSiteRecoveryProtectionContainer
Get-AzureSiteRecoveryProtectionEntity
Set- AzureSiteRecoveryProtectionEntity

Also includes functionality, framework, piping (at property level), exception & error handling with customized errors, writing customized PowerShell objects, with vault settings in memory, enable / disable protection has WaitForCompletion switch parameter, interrupt hanlding...

Please review these changes. Vault Key changes are yet to in.
This code is thread-unsafe. Changing static properties like these must happen under a lock so that concurrent execution of our cmdlets don't cause threading issues.