Commands for managing static IP addresses

Added commands:
azure vm static-ip show <vm-name>
azure vm static-ip set <vm-name> <ip-address>
azure vm static-ip remove <vm-name>
azure network vnet static-ip check <vnet> <ip-address>

Added --static-ip option to:
azure vm create
azure vm docker create

@babumuralidharan it seems that all bugs on this feature have been addressed.
@avranju , please review. This PR is assuming we want to merge into MSOT/dev and not send directly upstream.
I see what you mean. Modifying `promptIfNotGiven` might be at tad too disruptive though don't you think? Also I am not sure if the current semantics might actually be the desired semantics in certain situations (maybe RDFE has a default that is acceptable in case the input is not provided). If we're modifying `promptIfNotGiven` then maybe we can add additional optional arguments that can be passed by the caller if they want the input in question to be mandatory. A la,

```
vnet = cli.interaction.promptIfNotGiven($('Virtual network name: '), vnet, _, { required: true });
```