Modify Agent so it can run without sync script
Deal with missing <script> element case
Return null rather than empty Xml on error
Deal with case where agent is not available to provide desktop state
Only return Preparing state if VM is running
Deal with null return from Agent if config not available
Add comments & rename one state
Remvoe redundant condition
Enumeration name change
Add specific exception handling and error reporting.
Add support for default desktop offering.