Make kube-down more robust for GCE provider

This PR makes kube-down.sh more robust for the GCE provider. Before, the deletion of resources did not always succeed and running kube-down a second time would not always clean up remaining resources. This PR changes kube-down to find out what the running resources (instances, firewall rules, routes) are and then attempts to delete them. Occasionaly, something may go wrong:
```
Deleting firewall rules kubernetes-minion-1-all kubernetes-minion-2-all kubernetes-minion-3-all kubernetes-minion-4-all
ERROR: (gcloud.compute.firewall-rules.delete) Some requests did not succeed:
 - Backend Error
```
in which case kube0down can be run again.

For taking down very large clusters this is very useful to avoid a lot of manual deletion (or writing custom scripts).

@jbeda @cjcullen