* Adding NSG to the ARM eployment template when needed
* Adding tests and fixing bugs
* Removing denyall rule
* Fixing logic to determine which port to open
* Fixing config description
There are two types for storage profile, but they use the same
serialization name (storageProfile). This creates problems, so I worked
around it by taking the union of this type as well as OS Disk.