Added support for VM extensions, static IPs, specification of arbitrary vm sizes and reserved IPs.

This PR contains changes for support for VM extensions, static IPs, specification of arbitrary vm sizes and reserved IPs.
this comment is rather confusing to me. Did you really mean to say the timeout should be different? Or fixed?