Don't assume every AWS VPC has tags

The default VPC has no tags (by default), so we should use get()
Default ENABLE_CLUSTER_MONITORING to false

Otherwise kube-down fails because the variable is not defined
Add --pushup to e2e.go

Silly but hopefully memorable name for an option to --push OR --up
depending on cluster state.
Add util to validate namespaced names
Merge pull request #2795 from zmerlynn/pushup

Add --pushup to e2e.go
Merge pull request #2653 from justinsb/default_cluster_monitoring

Default ENABLE_CLUSTER_MONITORING to false
Merge pull request #2652 from justinsb/default_vpc_has_no_tags

Don't assume every AWS VPC has tags
Improve error reporting

Follow-up of changes introduced in commit 72c922668fefc1cf671d9c9e38ebf22a22a80dcf
Merge pull request #2801 from VojtechVitek/checkError

Improve error reporting
Fix e2e.
Merge pull request #2802 from brendandburns/fix

Fix e2e.
Merge pull request #2779 from thockin/qualname

Add util to validate namespaced names
Add --times to e2e.go

Make each test available for execution --times times. Acts like a
multi-deck shoe. (Otherwise this is easily scriptable outside the
e2e.go command).

Useful for "I want to walk away for a few hours leaving some end-to-ends
running", until we have more stress tests. Also useful for detecting
flakes.

Reporting is changed to break out Passed, Flaky and Failed. I chose to
keep all three lines even if --times isn't on, just for consistency in
scraping. Similarly, it always outputs the counts now. A report looks
like:

2014/12/09 07:31:21 Passed tests: goe2e.sh[100/100] guestbook.sh[100/100] private.sh[100/100] services.sh[100/100]
2014/12/09 07:31:21 Flaky tests: basic.sh[99/100] certs.sh[99/100] monitoring.sh[98/100] pd.sh[98/100] update.sh[98/100]
2014/12/09 07:31:21 Failed tests:
2014/12/09 07:31:21 8 test(s) failed.

Also added --faketest to skip running the actual test. (Though it's
probably best as a hidden option, if we had a way to do that.)