PR to support for skipping zeros for FixedVhd upload, Public IP, EndPoint ACL Rules and Specialized VM image.

@amarzavery Looks like [] won't work if the param needs to support for positional required and switch.

For example for 'public-ip delete' command, want to support positional and switch for 'vm-name' and 'publicip-name'. 

If i use

'publicIP.command('delete <vm-name> <publicip-name>')'

instead of 

'publicIP.command('delete [vm-name] [publicip-name]')'

Then commander stops recognizing switch params, for example if I use <> for positional params here:

I get below error:

(2) Prompt for each required argument if not provided as switch or positional arguments?

node ./bin/azure vm public-ip delete --help
help:    Delete public IP address for a VM
help:
help:    Usage: vm public-ip delete [options] <vm-name> <publicip-name>
help:
help:    Options:
help:      -h, --help                  output usage information
help:      -v, --verbose               use verbose output
help:      --json                      use json output
help:      -n, --vm-name <name>        the VM name
help:      -p, --publicip-name <name>  the public IP name
help:      -q, --quiet                 quiet mode, do not ask for remove confirmation
help:      -d, --dns-name <name>       filter VMs for the specified DNS name
help:      -s, --subscription <id>     the subscription id

>node ./bin/azure vm public-ip delete --vm-name SampleCRP-VM2 -p publicIp1

error: missing required argument `vm-name'

I think this is how commander works. 

Please refer this: https://github.com/Azure/azure-sdk-tools-xplat/blob/dev/lib/commands/asm/storage.blob._js#L151

here args file, container are required but file use [file] [container]