Start-AzureVM and Stop-AzureVM now support wildcards, allowing you to parallel-start / parallel-stop any/all VMs within the same service name. Here, you can see this in action, where I just started a few VMs in a single service, in parallel:
Now: If you wanted all VMs in the entire subscription, you could always enumerate all of your service namespaces, then start the VMs within. This is an example of that - tweak it as you see fit, for particular datacenter, etc.
Example of enumerating services:
Get-AzureService | Select ServiceName
Now to do something with that, instead of just listing the services:
Get-AzureService | Foreach-Object { Start-AzureVM -ServiceName $_.ServiceName -Name "*" }
Note: I didn't test that last one, as I didn't feel like starting all my VMs, but something like that should work for you as a bulk "start ever single VM in every single service in my subscription."